*, *::before, *::after { box-sizing: border-box; }

body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    font-size: 15px;
    line-height: 1.5;
    color: #1a1a1a;
    max-width: 1300px;
    margin: 0 auto;
    padding: 1.5rem 2rem;
    background: #f5f5f5;
}

h1 { margin: 0 0 0.25rem; font-size: 1.6rem; }
h2 { margin: 2rem 0 0.75rem; font-size: 1.1rem; }

.sub { color: #666; margin: 0 0 1.5rem; font-size: 0.9rem; }

nav { margin-bottom: 1.5rem; }
nav a { color: #0066cc; text-decoration: none; font-size: 0.9rem; }
nav a:hover { text-decoration: underline; }

table {
    border-collapse: collapse;
    width: 100%;
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 4px;
}

th, td {
    padding: 0.5rem 0.75rem;
    text-align: left;
    border-bottom: 1px solid #eee;
}

th {
    background: #f0f0f0;
    font-weight: 600;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    white-space: nowrap;
}

tr:last-child td { border-bottom: none; }
tbody tr:hover td { background: #fafafa; }

table.meta {
    max-width: 680px;
    margin-bottom: 1.5rem;
}
table.meta th {
    width: 130px;
    text-transform: none;
    font-size: 0.875rem;
    letter-spacing: 0;
}

.scroll { overflow-x: auto; }

table.records tr.fail-row td { background: #fff5f5; }
table.records tr.fail-row:hover td { background: #ffecec; }
td.detail { font-size: 0.82rem; color: #555; }
td.num, th.num { text-align: right; }
table.index td:nth-child(4) { text-align: right; }

.badge {
    display: inline-block;
    padding: 0.15em 0.55em;
    border-radius: 3px;
    font-size: 0.82em;
    font-weight: 600;
    white-space: nowrap;
}
.badge.pass    { background: #d4edda; color: #155724; }
.badge.fail    { background: #f8d7da; color: #721c24; }
.badge.neutral { background: #e2e3e5; color: #383d41; }

.mono { font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace; font-size: 0.85em; }

a { color: #0066cc; }
a:hover { text-decoration: none; }
