:root {
--bg: #0f1620;
--bg-deep: #0a0f17;
--paper: #18212e;
--paper-2: #1d2735;
--ink: #e8e4d6;
--ink-dim: #9aa3ad;
--ink-faint: #5b6470;
--accent: #ffd166;
--accent-2: #6fd3a3;
--danger: #ff7a7a;
--info: #7aa7d9;
--pass: var(--accent-2);
--fail: var(--danger);
--cancel: var(--accent);
--skip: var(--ink-faint);
--invalid: var(--accent);
--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
--font-mono: "JetBrains Mono", ui-monospace, "Cascadia Code", "Fira Code", "Source Code Pro", Menlo, Consolas, monospace;
--gap-xs: 4px;
--gap-sm: 8px;
--gap-md: 12px;
--gap-lg: 18px;
--gap-xl: 28px;
--radius: 6px;
--border: rgba(232, 228, 214, 0.18);
}
* { margin: 0; padding: 0; box-sizing: border-box; }
html {
background: var(--bg);
}
body {
background: var(--bg);
color: var(--ink);
font-family: var(--font-body);
font-size: 15px;
line-height: 1.5;
max-width: 1100px;
margin: 0 auto;
}
a { color: inherit; text-decoration: none; }
.appbar {
display: flex;
align-items: center;
gap: var(--gap-md);
padding: var(--gap-sm) var(--gap-lg);
border-bottom: 1px solid var(--border);
background: var(--bg);
font-size: 0.9rem;
color: var(--ink-dim);
}
.appbar .crumbs {
color: var(--ink);
font-family: var(--font-mono);
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.appbar .crumbs .sep {
color: var(--ink-faint);
margin: 0 6px;
}
.appbar .crumbs .run-id {
color: var(--ink-faint);
}
.appbar .pill {
font-family: var(--font-mono);
font-size: 0.72rem;
letter-spacing: 0.05em;
text-transform: uppercase;
padding: 2px 10px;
border: 1px solid currentColor;
border-radius: 100px;
flex: 0 0 auto;
}
.appbar .pill.pass { color: var(--pass); }
.appbar .pill.fail { color: var(--fail); }
.appbar .pill.cancel { color: var(--cancel); }
.appbar .timing {
margin-left: auto;
font-family: var(--font-mono);
font-size: 0.78rem;
color: var(--ink-dim);
flex: 0 0 auto;
}
.appbar .timing .cum {
color: var(--ink-faint);
}
.reports-bar {
padding: 6px var(--gap-lg);
border-bottom: 1px dashed var(--border);
font-family: var(--font-mono);
font-size: 0.76rem;
color: var(--ink-dim);
}
.reports-bar a { color: var(--ink-dim); }
.reports-bar a:hover { color: var(--ink); }
.reports-bar .sep { color: var(--ink-faint); margin: 0 6px; }
.search-row {
padding: var(--gap-sm) var(--gap-lg);
border-bottom: 1px dashed var(--border);
}
.search-input {
display: flex;
align-items: center;
gap: var(--gap-sm);
padding: 6px 10px;
border: 1px solid var(--accent);
border-radius: var(--radius);
background: color-mix(in srgb, var(--accent) 4%, transparent);
}
.search-input input {
flex: 1 1 auto;
background: transparent;
border: none;
color: var(--ink);
font: inherit;
font-family: var(--font-mono);
font-size: 0.85rem;
outline: none;
}
.search-input .glyph { color: var(--ink-faint); }
.search-input .count {
font-family: var(--font-mono);
color: var(--ink-faint);
font-size: 0.72rem;
}
.search-input .kbd {
font-family: var(--font-mono);
font-size: 0.6rem;
font-weight: 600;
line-height: 1;
padding: 2px 4px;
border: 1px solid var(--accent);
border-radius: 3px;
color: var(--accent);
background: color-mix(in srgb, var(--accent) 8%, transparent);
}
main { padding: 0 var(--gap-lg) var(--gap-xl); }
.group-header {
color: var(--ink-faint);
font-size: 0.76rem;
padding: var(--gap-md) var(--gap-xs) var(--gap-xs);
text-transform: lowercase;
letter-spacing: 0.04em;
}
.group {
display: grid;
grid-template-columns: minmax(0, 1fr) auto minmax(0, 2fr) auto;
column-gap: var(--gap-md);
row-gap: 0;
}
.row {
display: contents;
}
.row[hidden] {
display: none;
}
.group[hidden] {
display: none;
}
.row > .test,
.row > .result,
.row > .details,
.row > .duration {
padding: 8px var(--gap-sm);
border-bottom: 1px solid var(--border);
min-width: 0;
}
a.row:hover > .test,
a.row:hover > .result,
a.row:hover > .details,
a.row:hover > .duration {
background: color-mix(in srgb, var(--accent) 8%, transparent);
}
.row .test {
font-family: var(--font-mono);
display: flex;
flex-direction: column;
gap: 2px;
min-width: 0;
}
.row .test .name {
color: var(--ink);
font-size: 0.95rem;
word-break: break-word;
}
.row .test .path {
color: var(--ink-faint);
font-size: 0.78rem;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.row .result {
display: flex;
align-items: center;
}
.row .result .pill {
font-family: var(--font-mono);
font-size: 0.72rem;
letter-spacing: 0.05em;
text-transform: uppercase;
padding: 2px 10px;
border: 1px solid currentColor;
border-radius: 100px;
}
.row .result .pill.pass { color: var(--pass); }
.row .result .pill.fail { color: var(--fail); }
.row .result .pill.cancel { color: var(--cancel); }
.row .result .pill.invalid { color: var(--invalid); }
.row .result .pill.skip { color: var(--skip); }
.row .details {
color: var(--ink-dim);
font-family: var(--font-mono);
font-size: 0.78rem;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
display: flex;
align-items: center;
}
.row .details .flaky {
font-family: var(--font-mono);
font-size: 0.65rem;
color: var(--accent);
border: 1px solid var(--accent);
border-radius: 100px;
padding: 1px 8px;
background: color-mix(in srgb, var(--accent) 8%, transparent);
}
.row .duration {
color: var(--ink-dim);
font-family: var(--font-mono);
font-size: 0.78rem;
text-align: right;
white-space: nowrap;
}
mark.search-hit {
background-color: color-mix(in srgb, var(--accent) 12%, transparent);
color: inherit;
border-radius: 2px;
padding: 0;
}
mark.search-hit-current {
background-color: color-mix(in srgb, var(--accent) 36%, transparent);
color: var(--accent);
border-radius: 2px;
outline: 1px solid var(--accent);
outline-offset: 0;
}