/* /reports/contest-terms: the contest terms report. Uses the app.css tokens; small text uses --ink-4 for AA contrast. */

.tr-page { max-width: 880px; margin: 0 auto; padding: 24px 0 72px; }
.tr-page a { color: inherit; text-decoration: none; border-bottom: 1px solid var(--rule-2); }
.tr-page a:hover { color: var(--red); border-color: var(--red); }

.tr-head { max-width: 700px; }
.tr-eyebrow {
    margin: 0 0 18px; font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.22em;
    text-transform: uppercase; color: var(--ink-4);
}
.tr-title {
    margin: 0 0 22px; font-size: clamp(36px, 5.6vw, 54px); font-weight: 600; line-height: 1.02;
    letter-spacing: -0.028em; color: var(--ink); text-wrap: balance;
}
.tr-lede {
    margin: 0 0 14px; font-size: clamp(19px, 2.3vw, 23px); font-weight: 500; line-height: 1.38;
    letter-spacing: -0.012em; color: var(--ink); text-wrap: pretty;
}
.tr-sub { margin: 0; max-width: 62ch; font-size: 16.5px; line-height: 1.62; color: var(--ink-2); text-wrap: pretty; }
.tr-meta {
    margin: 26px 0 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 22px;
    font-family: var(--font-mono); font-size: 11.5px; letter-spacing: 0.01em; color: var(--ink-4);
}
.tr-meta span { flex-basis: 100%; }
.tr-page .tr-meta a { color: var(--red); border-color: var(--red-line); }
.tr-page .tr-meta a:hover { border-color: var(--red); }

.tr-figures {
    margin: 56px 0 0; padding: 30px 0 4px; border-top: 1px solid var(--ink);
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px 36px;
}
.tr-fig p { margin: 0; }
.tr-num {
    font-size: 46px; font-weight: 600; line-height: 1; letter-spacing: -0.03em; color: var(--ink);
    font-variant-numeric: tabular-nums;
}
.tr-num span {
    margin-left: 8px; font-family: var(--font-mono); font-size: 12px; font-weight: 400;
    letter-spacing: 0.02em; color: var(--ink-4);
}
.tr-cap { margin-top: 12px !important; font-size: 14px; line-height: 1.5; color: var(--ink-2); max-width: 24ch; }

.tr-section {
    margin-top: 64px; padding-top: 30px; border-top: 1px solid var(--rule-2);
    display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr); gap: 32px 56px;
}
.tr-h2 { margin: 0 0 14px; font-size: 22px; font-weight: 600; line-height: 1.25; letter-spacing: -0.014em; color: var(--ink); }
.tr-line { margin: 0 0 14px; max-width: 62ch; font-size: 16px; line-height: 1.62; color: var(--ink-2); text-wrap: pretty; }
.tr-note { margin: 10px 0 0; font-family: var(--font-mono); font-size: 11px; line-height: 1.55; color: var(--ink-4); letter-spacing: 0.01em; }

.tr-tally { width: 100%; margin: 22px 0 0; border-collapse: collapse; }
.tr-tally th, .tr-tally td { padding: 9px 0; border-bottom: 1px solid var(--rule); vertical-align: baseline; }
.tr-tally th { text-align: left; font-size: 14px; font-weight: 400; color: var(--ink-2); padding-right: 18px; }
.tr-tally td {
    text-align: right; font-family: var(--font-mono); font-size: 14px; color: var(--ink);
    font-variant-numeric: tabular-nums; white-space: nowrap;
}
.tr-tally tbody.tr-also tr:first-child th, .tr-tally tbody.tr-also tr:first-child td { border-top: 1px solid var(--rule-2); }
.tr-tally tbody.tr-also th { color: var(--ink-4); }
.tr-tally tr.tr-subrow th { padding-left: 18px; font-size: 13.5px; color: var(--ink-4); }
.tr-tally tr.tr-subrow td { font-size: 13px; color: var(--ink-2); }
.tr-nw, .tr-page .nw { white-space: nowrap; }

.tr-quotes { padding-top: 40px; }
.tr-quote { margin: 0 0 26px; }
.tr-quote:last-child { margin-bottom: 0; }
.tr-quote blockquote { margin: 0; padding: 2px 0 2px 18px; border-left: 2px solid var(--rule-2); }
.tr-quote blockquote p { margin: 0; font-size: 15px; line-height: 1.62; color: var(--ink); text-wrap: pretty; text-indent: -0.42em; }
.tr-quote figcaption {
    margin: 10px 0 0 20px; font-family: var(--font-mono); font-size: 11px; line-height: 1.5;
    letter-spacing: 0.01em; color: var(--ink-4);
}

.tr-records { margin-top: 72px; padding-top: 30px; border-top: 1px solid var(--rule-2); }
.tr-table { width: 100%; margin: 24px 0 0; border-collapse: collapse; font-size: 13.5px; }
.tr-table thead th {
    padding: 0 14px 10px 0; text-align: left; vertical-align: bottom; border-bottom: 1px solid var(--ink);
    font-family: var(--font-mono); font-size: 10px; font-weight: 400; letter-spacing: 0.16em;
    text-transform: uppercase; color: var(--ink-4);
}
.tr-table tbody th, .tr-table td {
    padding: 12px 14px 12px 0; border-bottom: 1px solid var(--rule); vertical-align: top;
    text-align: left; line-height: 1.45; color: var(--ink-2);
}
.tr-table col.c-name { width: 31%; }
.tr-table col.c-reach { width: 17%; }
.tr-table col.c-term { width: 13%; }
.tr-table col.c-uses { width: 21%; }
.tr-table col.c-ai { width: 18%; }
.tr-table tbody th { font-weight: 600; color: var(--ink); }
.tr-table tbody th > a { border-color: transparent; }
.tr-table tbody th > a:hover { border-color: var(--red); }
.tr-src { display: block; margin-top: 3px; font-family: var(--font-mono); font-size: 10.5px; font-weight: 400; color: var(--ink-4); }
.tr-dot { color: var(--ink-4); }

.tr-method { margin-top: 72px; padding-top: 30px; border-top: 1px solid var(--rule-2); scroll-margin-top: 24px; }
.tr-defs { margin: 22px 0 0; display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 0 32px; }
.tr-defs dt, .tr-defs dd { padding: 14px 0; border-top: 1px solid var(--rule); }
.tr-defs dt { font-size: 13.5px; font-weight: 600; color: var(--ink); line-height: 1.5; }
.tr-defs dd { margin: 0; font-size: 14.5px; line-height: 1.65; color: var(--ink-2); max-width: 64ch; }
.tr-org { margin: 40px 0 0; font-size: 15px; color: var(--ink-2); }
.tr-colophon { margin: 14px 0 0; font-family: var(--font-mono); font-size: 11px; color: var(--ink-4); letter-spacing: 0.02em; }

@media (max-width: 860px) {
    .tr-figures { grid-template-columns: repeat(2, 1fr); }
    .tr-section { grid-template-columns: 1fr; }
    .tr-quotes { padding-top: 0; }
}

@media (max-width: 640px) {
    .tr-page { padding-top: 4px; }
    .tr-figures { gap: 26px 20px; margin-top: 44px; }
    .tr-num { font-size: 38px; }
    .tr-section, .tr-records, .tr-method { margin-top: 52px; }
    .tr-table thead { display: none; }
    .tr-table, .tr-table tbody, .tr-table tr { display: block; }
    .tr-table tr { padding: 14px 0; border-bottom: 1px solid var(--rule); }
    .tr-table tbody th, .tr-table td { display: block; width: auto; padding: 0; border: 0; }
    .tr-table tbody th { margin-bottom: 8px; }
    .tr-table td { display: grid; grid-template-columns: 9.5em minmax(0, 1fr); gap: 12px; padding: 2px 0; }
    .tr-table td::before {
        content: attr(data-label); font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.08em;
        text-transform: uppercase; color: var(--ink-4); padding-top: 2px;
    }
    .tr-defs { grid-template-columns: 1fr; }
    .tr-defs dt { padding-bottom: 4px; }
    .tr-defs dd { padding-top: 0; border-top: 0; }
}
