Spaces:
Running
Running
Remove method-specific Overall annotations
Browse filesRemove the leaderboard notice, row badges, and method-detail audit annotations so all compression methods share the same presentation. Keep measured results, rankings, method documentation, and independent audit data.
- app.js +3 -6
- index.html +2 -3
- style.css +2 -2
app.js
CHANGED
|
@@ -63,7 +63,7 @@ function renderTable() {
|
|
| 63 |
const visible=cols.filter(c=>c.visible&&(!c.overallOnly||activeTab==='overall'));
|
| 64 |
$('leaderboard').querySelector('thead').innerHTML=`<tr><th>Position</th><th>Method / configuration</th>${visible.map(c=>`<th aria-sort="${sort.key===c.key?(sort.direction===1?'ascending':'descending'):'none'}"><button data-sort="${c.key}" title="Sort ${escape(c.label)}">${escape(c.label)}${sort.key===c.key?(sort.direction===1?' ▴':' ▾'):''}</button></th>`).join('')}<th>Dataset coverage</th></tr>`;
|
| 65 |
const minima=Object.fromEntries(visible.map(c=>[c.key,Math.min(...currentRows.map(r=>number(r[c.key])).filter(n=>n!==null))]));
|
| 66 |
-
$('leaderboard').querySelector('tbody').innerHTML=currentRows.length?currentRows.map((r,i)=>`<tr><td class="rank numeric">${i+1}</td><td><button class="method-button" data-method="${escape(r.method)}">${escape(r.method)}</button><span class="method-family">${escape(r.family)} · ${escape(runtimeName(r.runtime))}</span>
|
| 67 |
for(const button of $('leaderboard').querySelectorAll('[data-sort]'))button.addEventListener('click',()=>{const key=button.dataset.sort;sort={key,direction:sort.key===key?-sort.direction:1};refresh();});
|
| 68 |
for(const button of $('leaderboard').querySelectorAll('[data-method]'))button.addEventListener('click',()=>showMethod(button.dataset.method,true));
|
| 69 |
$('row-count').textContent=`${currentRows.length} ${state().mode==='family'?'method families':'method configurations'} · sorted by ${cols.find(c=>c.key===sort.key)?.label??sort.key}`;
|
|
@@ -81,9 +81,6 @@ function refresh() {
|
|
| 81 |
$('results-note').textContent='All-float measurements are not available in this snapshot. Select a precision category.';
|
| 82 |
} else $('results-note').textContent=state().mode==='family'?'Each family uses its lowest-rate measured configuration per dataset. Configurations may differ across datasets; use Exact configuration for fixed parameters.':'Each row retains one exact configuration. Lower compression rates and lower ns/point are better. Coverage counts datasets, not identical column sets.';
|
| 83 |
currentRows=aggregate(filteredRecords(true));
|
| 84 |
-
const audit=snapshot.benchmark?.method_audits?.DBP;
|
| 85 |
-
$('audit-notice').hidden=!audit||!currentRows.some(r=>r.family==='DBP');
|
| 86 |
-
$('audit-notice').innerHTML=audit?`<strong>Historical DBP leaderboard snapshot.</strong> ${escape(audit.timing)} ${escape(audit.storage)} The separate DBF1/DBF2 native-float audit uses the latest frozen typed dataset receipts and is excluded from Overall scores and Average Rank. <a href="./dbp-audit.html">Open the full-wire audit →</a>`:'';
|
| 87 |
const weights=parseWeights($('weights').value);
|
| 88 |
$('score-note').textContent=`Score = ${weights[0].toFixed(1)} × average rate + ${weights[1].toFixed(1)} × normalized encode + ${weights[2].toFixed(1)} × normalized decode. Lower is better. Time normalization: (time − minimum) / (maximum − minimum), across all measured rows in this runtime, scope and row mode. Search and visibility filters keep the reference fixed. Average Rank: mean of per-dataset score ranks with dataset-local time normalization; ties share their average position. Missing results are omitted. Dataset candidate counts differ, so compare rank coverage and inspect method details.`;
|
| 89 |
const s=state(),scope=scopeKey(),measuredCount=new Set(records.map(r=>r.dataset)).size,ds=s.dataset==='all'?`all ${measuredCount} measured datasets`:datasetDisplayName(s.dataset);
|
|
@@ -109,9 +106,9 @@ function setTab(tab) {
|
|
| 109 |
function showMethod(method,focus=false) {
|
| 110 |
const row=currentRows.find(r=>r.method===method), detail=$('method-detail');
|
| 111 |
if(!row){selectedMethod=null;detail.hidden=true;return;}selectedMethod=method;
|
| 112 |
-
const meta=methods.get(method)??methods.get(row.source[0].configuration), pipeline=meta?.operator_pipeline
|
| 113 |
const source=row.source.slice().sort((a,b)=>a.dataset.localeCompare(b.dataset));
|
| 114 |
-
detail.innerHTML=`<div class="detail-head"><div><h2 id="detail-title">${escape(method)}</h2><p class="muted">${escape(row.family)} · ${escape(runtimeName(row.runtime))} · ${row.coverage} measured datasets</p></div><button id="close-detail" class="quiet-button">Close details</button></div><div class="detail-grid"><div><strong>${fmt(row.compression_rate,4)}</strong><span>average compression rate</span></div><div><strong>${fmt(row.compression_time,2)}</strong><span>encoding ns/point</span></div><div><strong>${fmt(row.decompression_time,2)}</strong><span>decoding ns/point</span></div><div><strong>${row.coverage} / ${row.totalDatasets}</strong><span>dataset coverage</span></div></div>${
|
| 115 |
detail.hidden=false;$('close-detail').addEventListener('click',()=>{detail.hidden=true;selectedMethod=null;});
|
| 116 |
if(focus){detail.scrollIntoView({block:'nearest',behavior:'auto'});detail.focus({preventScroll:true});}
|
| 117 |
}
|
|
|
|
| 63 |
const visible=cols.filter(c=>c.visible&&(!c.overallOnly||activeTab==='overall'));
|
| 64 |
$('leaderboard').querySelector('thead').innerHTML=`<tr><th>Position</th><th>Method / configuration</th>${visible.map(c=>`<th aria-sort="${sort.key===c.key?(sort.direction===1?'ascending':'descending'):'none'}"><button data-sort="${c.key}" title="Sort ${escape(c.label)}">${escape(c.label)}${sort.key===c.key?(sort.direction===1?' ▴':' ▾'):''}</button></th>`).join('')}<th>Dataset coverage</th></tr>`;
|
| 65 |
const minima=Object.fromEntries(visible.map(c=>[c.key,Math.min(...currentRows.map(r=>number(r[c.key])).filter(n=>n!==null))]));
|
| 66 |
+
$('leaderboard').querySelector('tbody').innerHTML=currentRows.length?currentRows.map((r,i)=>`<tr><td class="rank numeric">${i+1}</td><td><button class="method-button" data-method="${escape(r.method)}">${escape(r.method)}</button><span class="method-family">${escape(r.family)} · ${escape(runtimeName(r.runtime))}</span></td>${visible.map(c=>`<td class="numeric ${!['compressed_bytes','original_bytes','rank_coverage'].includes(c.key)&&number(r[c.key])!==null&&r[c.key]===minima[c.key]?'best':''}">${c.key==='rank_coverage'?`${r.rank_coverage} / ${r.totalDatasets}`:fmt(r[c.key],c.digits)}</td>`).join('')}<td><span class="coverage ${r.coverage===r.totalDatasets?'full':''}">${r.coverage} / ${r.totalDatasets}</span></td></tr>`).join(''):`<tr><td colspan="${visible.length+3}" class="empty-cell">No measurements match this selection. Try another runtime, data type, or dataset.</td></tr>`;
|
| 67 |
for(const button of $('leaderboard').querySelectorAll('[data-sort]'))button.addEventListener('click',()=>{const key=button.dataset.sort;sort={key,direction:sort.key===key?-sort.direction:1};refresh();});
|
| 68 |
for(const button of $('leaderboard').querySelectorAll('[data-method]'))button.addEventListener('click',()=>showMethod(button.dataset.method,true));
|
| 69 |
$('row-count').textContent=`${currentRows.length} ${state().mode==='family'?'method families':'method configurations'} · sorted by ${cols.find(c=>c.key===sort.key)?.label??sort.key}`;
|
|
|
|
| 81 |
$('results-note').textContent='All-float measurements are not available in this snapshot. Select a precision category.';
|
| 82 |
} else $('results-note').textContent=state().mode==='family'?'Each family uses its lowest-rate measured configuration per dataset. Configurations may differ across datasets; use Exact configuration for fixed parameters.':'Each row retains one exact configuration. Lower compression rates and lower ns/point are better. Coverage counts datasets, not identical column sets.';
|
| 83 |
currentRows=aggregate(filteredRecords(true));
|
|
|
|
|
|
|
|
|
|
| 84 |
const weights=parseWeights($('weights').value);
|
| 85 |
$('score-note').textContent=`Score = ${weights[0].toFixed(1)} × average rate + ${weights[1].toFixed(1)} × normalized encode + ${weights[2].toFixed(1)} × normalized decode. Lower is better. Time normalization: (time − minimum) / (maximum − minimum), across all measured rows in this runtime, scope and row mode. Search and visibility filters keep the reference fixed. Average Rank: mean of per-dataset score ranks with dataset-local time normalization; ties share their average position. Missing results are omitted. Dataset candidate counts differ, so compare rank coverage and inspect method details.`;
|
| 86 |
const s=state(),scope=scopeKey(),measuredCount=new Set(records.map(r=>r.dataset)).size,ds=s.dataset==='all'?`all ${measuredCount} measured datasets`:datasetDisplayName(s.dataset);
|
|
|
|
| 106 |
function showMethod(method,focus=false) {
|
| 107 |
const row=currentRows.find(r=>r.method===method), detail=$('method-detail');
|
| 108 |
if(!row){selectedMethod=null;detail.hidden=true;return;}selectedMethod=method;
|
| 109 |
+
const meta=methods.get(method)??methods.get(row.source[0].configuration), pipeline=meta?.operator_pipeline;
|
| 110 |
const source=row.source.slice().sort((a,b)=>a.dataset.localeCompare(b.dataset));
|
| 111 |
+
detail.innerHTML=`<div class="detail-head"><div><h2 id="detail-title">${escape(method)}</h2><p class="muted">${escape(row.family)} · ${escape(runtimeName(row.runtime))} · ${row.coverage} measured datasets</p></div><button id="close-detail" class="quiet-button">Close details</button></div><div class="detail-grid"><div><strong>${fmt(row.compression_rate,4)}</strong><span>average compression rate</span></div><div><strong>${fmt(row.compression_time,2)}</strong><span>encoding ns/point</span></div><div><strong>${fmt(row.decompression_time,2)}</strong><span>decoding ns/point</span></div><div><strong>${row.coverage} / ${row.totalDatasets}</strong><span>dataset coverage</span></div></div>${pipeline?`<p class="source-code">Interpretive operator mapping: ${escape(typeof pipeline==='string'?pipeline:JSON.stringify(pipeline))}</p>`:''}<p class="muted">Dataset metrics below come from the published result files. Independent round-trip evidence and hardware are ${snapshot.benchmark?.roundtrip_evidence?'documented in the manifest':'not reported for this snapshot'}.</p><div class="detail-table"><table><thead><tr><th>Dataset</th><th>Configuration</th><th>Rate ↓</th><th>Encode ns/point ↓</th><th>Decode ns/point ↓</th><th>Original bytes</th><th>Compressed bytes</th><th>Dataset score ↓</th><th>Dataset Rank ↓</th><th>Rank candidates</th></tr></thead><tbody>${source.map(r=>`<tr><td>${escape(r.dataset)}</td><td>${escape(r.configuration)}</td><td class="numeric">${fmt(r.compression_rate,4)}</td><td class="numeric">${fmt(r.compression_time,2)}</td><td class="numeric">${fmt(r.decompression_time,2)}</td><td class="numeric">${fmt(r.original_bytes,0)}</td><td class="numeric">${fmt(r.compressed_bytes,0)}</td><td class="numeric">${fmt(r.dataset_score,4)}</td><td class="numeric">${fmt(r.dataset_rank,2)}</td><td class="numeric">${fmt(r.dataset_candidate_count,0)}</td></tr>`).join('')}</tbody></table></div>`;
|
| 112 |
detail.hidden=false;$('close-detail').addEventListener('click',()=>{detail.hidden=true;selectedMethod=null;});
|
| 113 |
if(focus){detail.scrollIntoView({block:'nearest',behavior:'auto'});detail.focus({preventScroll:true});}
|
| 114 |
}
|
index.html
CHANGED
|
@@ -6,8 +6,8 @@
|
|
| 6 |
<meta name="description" content="THULab time-series compression benchmark: measured compression rates, encoding and decoding costs, and dataset coverage.">
|
| 7 |
<meta name="color-scheme" content="light dark">
|
| 8 |
<title>THULab | Time Series Compression Benchmark</title>
|
| 9 |
-
<link rel="stylesheet" href="style.css?v=20261009-
|
| 10 |
-
<script src="app.js?v=20261009-
|
| 11 |
</head>
|
| 12 |
<body>
|
| 13 |
<a class="skip-link" href="#content">Skip to results</a>
|
|
@@ -63,7 +63,6 @@
|
|
| 63 |
<div class="toolbar-actions"><button id="reset" class="quiet-button">Reset filters</button><button id="download" class="primary-button" disabled>Download CSV</button></div>
|
| 64 |
</div>
|
| 65 |
<div class="results-note" id="results-note">Compression rate = compressed bytes / original bytes. Lower rates and lower ns/point are better.</div>
|
| 66 |
-
<p id="audit-notice" class="audit-notice" hidden></p>
|
| 67 |
<div id="score-controls" class="score-controls">
|
| 68 |
<label>Score weights · a: rate / b: encode / c: decode<select id="weights" aria-label="Score weights a b c"></select></label>
|
| 69 |
<p id="score-note" class="muted" aria-live="polite">Positive weights in steps of 0.1, summing to 1.0.</p>
|
|
|
|
| 6 |
<meta name="description" content="THULab time-series compression benchmark: measured compression rates, encoding and decoding costs, and dataset coverage.">
|
| 7 |
<meta name="color-scheme" content="light dark">
|
| 8 |
<title>THULab | Time Series Compression Benchmark</title>
|
| 9 |
+
<link rel="stylesheet" href="style.css?v=20261009-overall-neutral-v1">
|
| 10 |
+
<script src="app.js?v=20261009-overall-neutral-v1" type="module"></script>
|
| 11 |
</head>
|
| 12 |
<body>
|
| 13 |
<a class="skip-link" href="#content">Skip to results</a>
|
|
|
|
| 63 |
<div class="toolbar-actions"><button id="reset" class="quiet-button">Reset filters</button><button id="download" class="primary-button" disabled>Download CSV</button></div>
|
| 64 |
</div>
|
| 65 |
<div class="results-note" id="results-note">Compression rate = compressed bytes / original bytes. Lower rates and lower ns/point are better.</div>
|
|
|
|
| 66 |
<div id="score-controls" class="score-controls">
|
| 67 |
<label>Score weights · a: rate / b: encode / c: decode<select id="weights" aria-label="Score weights a b c"></select></label>
|
| 68 |
<p id="score-note" class="muted" aria-live="polite">Positive weights in steps of 0.1, summing to 1.0.</p>
|
style.css
CHANGED
|
@@ -8,12 +8,12 @@
|
|
| 8 |
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
|
| 9 |
.intro{padding:16px 0 10px}.eyebrow{display:none}h1{font-size:clamp(24px,2.8vw,30px);margin-bottom:8px}.intro-text{font-size:13px}.snapshot{font-size:11px;margin-top:6px}.summary-strip{padding:10px 0}.summary-strip strong{font-size:20px}.filters{padding:12px;gap:8px}.toolbar{margin-top:12px;margin-bottom:4px}
|
| 10 |
.score-controls{display:flex;align-items:start;gap:20px;padding:12px 14px;margin:6px 0 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--soft)}.score-controls label{min-width:320px}.score-controls p{font-size:11px;line-height:1.7;margin:0;max-width:90ch}.score-controls select{height:35px}@media(max-width:768px){.score-controls{flex-direction:column;gap:10px}.score-controls label{min-width:0;width:100%}}
|
| 11 |
-
|
| 12 |
.documentation-view{max-width:1180px}.documentation-head{display:flex;justify-content:space-between;align-items:end;gap:28px;margin-bottom:10px}.documentation-head>div{min-width:0}.documentation-search{width:min(390px,42%);flex:0 0 auto}.reference-source{margin:8px 0 4px;color:var(--muted);font-size:12px}.documentation-status{margin:14px 0;color:var(--muted);font-size:12px}.documentation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.documentation-card{min-width:0;padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.documentation-card h3,.documentation-card h4{margin:0;color:var(--text);line-height:1.35}.documentation-card h4{font-size:16px}.documentation-card-head{display:flex;justify-content:space-between;align-items:start;gap:16px}.documentation-code{display:block;margin-top:3px;color:var(--muted);font:11px "SFMono-Regular",Consolas,monospace;overflow-wrap:anywhere}.documentation-count{flex:0 0 auto;padding:3px 7px;border-radius:4px;background:var(--soft);color:var(--muted);font-size:10px}.documentation-description{margin:12px 0;color:var(--text);font-size:13px;line-height:1.65}.documentation-note{margin:10px 0;padding:9px 11px;border-left:2px solid var(--line);color:var(--muted);font-size:12px}.documentation-references{margin-top:12px;font-size:12px}.documentation-references>strong{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.documentation-references ul{list-style:none;padding:0;margin:6px 0 0}.documentation-references li{padding:5px 0;border-top:1px solid var(--line);overflow-wrap:anywhere}.documentation-references small{display:block;margin-top:1px;color:var(--muted);font-size:10px}.reference-empty{margin:12px 0 0;color:var(--muted);font-size:11px}.configuration-details{margin-top:13px;border-top:1px solid var(--line);padding-top:10px}.configuration-details summary{cursor:pointer;color:var(--accent);font-size:12px;font-weight:600}.configuration-details ul{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:10px 0 0;margin:0}.configuration-details li{max-width:100%;padding:4px 7px;border-radius:4px;background:var(--soft);font:10px "SFMono-Regular",Consolas,monospace;overflow-wrap:anywhere}.operator-group{margin-top:24px}.operator-group>h3{margin:0 0 10px;padding-bottom:8px;border-bottom:1px solid var(--line)}.operator-card{padding:16px}.documentation-error,.documentation-empty{grid-column:1/-1;margin:0;padding:22px;border:1px solid var(--line);border-radius:var(--radius);color:var(--muted);background:var(--surface)}.documentation-error{border-left:3px solid #b34938;color:var(--text)}@media(max-width:768px){.documentation-head{align-items:stretch;flex-direction:column;gap:14px}.documentation-search{width:100%}.documentation-grid{grid-template-columns:1fr}.documentation-card{padding:15px}.documentation-card-head{gap:10px}}
|
| 13 |
.operator-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1px;margin:16px 0;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.operator-summary>div{padding:12px;background:var(--surface);text-align:center}.operator-summary strong{display:block;font-size:20px;line-height:1.2;font-variant-numeric:tabular-nums}.operator-summary span{display:block;margin-top:4px;color:var(--muted);font-size:10px}.documentation-native-name{display:block;margin-top:2px;color:var(--muted);font-size:11px}.implementation-details{margin-top:14px;padding-top:11px;border-top:1px solid var(--line)}.implementation-details>summary{cursor:pointer;color:var(--accent);font-size:12px;font-weight:650}.implementation-list{display:grid;gap:9px;margin-top:11px}.implementation-entry{padding:12px;border:1px solid var(--line);border-radius:6px;background:var(--soft)}.implementation-head{display:flex;align-items:start;justify-content:space-between;gap:12px}.implementation-head strong{font-size:12px}.implementation-layer{flex:0 0 auto;padding:2px 6px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.05em}.implementation-entry dl{display:grid;gap:6px;margin:10px 0 0}.implementation-entry dl>div{display:grid;grid-template-columns:62px minmax(0,1fr);gap:8px}.implementation-entry dt{color:var(--muted);font-size:10px;font-weight:650;text-transform:uppercase;letter-spacing:.04em}.implementation-entry dd{margin:0;font-size:11px;line-height:1.5;overflow-wrap:anywhere}.implementation-entry .documentation-references{font-size:11px}.implementation-entry .documentation-references>strong{font-size:9px}
|
| 14 |
.dataset-catalog-panel{margin:18px 0 20px;padding:18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.dataset-catalog-head{display:flex;align-items:end;justify-content:space-between;gap:24px}.dataset-catalog-head>div:first-child{min-width:0}.dataset-catalog-controls{display:grid;grid-template-columns:180px minmax(220px,320px);gap:10px;flex:0 0 auto}.dataset-catalog{max-height:430px;overflow:auto;padding-right:5px}.dataset-category{margin-top:18px}.dataset-category:first-child{margin-top:0}.dataset-category>h3{position:sticky;top:0;z-index:1;display:flex;align-items:center;gap:8px;margin:0;padding:8px 2px;background:var(--surface);border-bottom:1px solid var(--line);font-size:14px}.dataset-category>h3 span{padding:2px 6px;border-radius:999px;background:var(--soft);color:var(--muted);font-size:9px}.dataset-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding-top:8px}.dataset-entry{min-width:0;padding:10px;border:1px solid var(--line);border-radius:6px;background:var(--bg)}.dataset-entry.measured{border-left:3px solid var(--accent)}.dataset-entry.selected{box-shadow:inset 0 0 0 1px var(--accent);background:var(--accent-soft)}.dataset-entry button{display:flex;align-items:start;justify-content:space-between;gap:8px;width:100%;padding:0;border:0;background:transparent;color:var(--text);text-align:left}.dataset-entry button:hover strong{color:var(--accent);text-decoration:underline}.dataset-entry strong{display:block;font-size:12px;line-height:1.35;overflow-wrap:anywhere}.dataset-entry small{display:block;margin-top:2px;color:var(--muted);font:9px "SFMono-Regular",Consolas,monospace;overflow-wrap:anywhere}.dataset-state{flex:0 0 auto;max-width:92px;padding:2px 5px;border-radius:4px;background:var(--soft);color:var(--muted);font-size:8px;line-height:1.35;text-align:right}.dataset-entry.measured .dataset-state{background:var(--accent-soft);color:var(--accent)}.dataset-entry p{margin:7px 0 0;color:var(--muted);font-size:9px;line-height:1.45}.dataset-entry .dataset-snapshot-note{color:#9a5a16}.dataset-links{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:6px}.dataset-links a,.dataset-source{font-size:9px;overflow-wrap:anywhere}
|
| 15 |
@media(max-width:1000px){.operator-summary{grid-template-columns:repeat(3,1fr)}.dataset-list{grid-template-columns:repeat(2,minmax(0,1fr))}.dataset-catalog-head{align-items:stretch;flex-direction:column;gap:12px}.dataset-catalog-controls{width:100%;grid-template-columns:1fr 1.5fr}}
|
| 16 |
@media(max-width:768px){.operator-summary{grid-template-columns:repeat(2,1fr)}.implementation-entry dl>div{grid-template-columns:1fr;gap:1px}.dataset-catalog-panel{padding:14px}.dataset-catalog-controls,.dataset-list{grid-template-columns:1fr}.dataset-catalog{max-height:520px}}
|
| 17 |
-
.
|
| 18 |
@media(max-width:1000px){.audit-summary{grid-template-columns:repeat(3,1fr)}.audit-filters{grid-template-columns:repeat(2,1fr)}.dataset-receipt-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
|
| 19 |
@media(max-width:768px){.audit-hero{align-items:stretch;flex-direction:column;padding-top:24px}.audit-state-card{flex:auto;width:100%}.audit-summary{grid-template-columns:repeat(2,1fr)}.audit-meta-grid,.runtime-status-grid,.audit-filters,.dataset-receipt-grid{grid-template-columns:1fr}.section-heading{align-items:stretch;flex-direction:column;gap:10px}.audit-definitions{grid-template-columns:1fr}.audit-definitions dd{padding-top:0;border-top:0}.audit-results .toolbar-actions{width:100%}.audit-results .toolbar-actions button{flex:1}}
|
|
|
|
| 8 |
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
|
| 9 |
.intro{padding:16px 0 10px}.eyebrow{display:none}h1{font-size:clamp(24px,2.8vw,30px);margin-bottom:8px}.intro-text{font-size:13px}.snapshot{font-size:11px;margin-top:6px}.summary-strip{padding:10px 0}.summary-strip strong{font-size:20px}.filters{padding:12px;gap:8px}.toolbar{margin-top:12px;margin-bottom:4px}
|
| 10 |
.score-controls{display:flex;align-items:start;gap:20px;padding:12px 14px;margin:6px 0 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--soft)}.score-controls label{min-width:320px}.score-controls p{font-size:11px;line-height:1.7;margin:0;max-width:90ch}.score-controls select{height:35px}@media(max-width:768px){.score-controls{flex-direction:column;gap:10px}.score-controls label{min-width:0;width:100%}}
|
| 11 |
+
|
| 12 |
.documentation-view{max-width:1180px}.documentation-head{display:flex;justify-content:space-between;align-items:end;gap:28px;margin-bottom:10px}.documentation-head>div{min-width:0}.documentation-search{width:min(390px,42%);flex:0 0 auto}.reference-source{margin:8px 0 4px;color:var(--muted);font-size:12px}.documentation-status{margin:14px 0;color:var(--muted);font-size:12px}.documentation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.documentation-card{min-width:0;padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.documentation-card h3,.documentation-card h4{margin:0;color:var(--text);line-height:1.35}.documentation-card h4{font-size:16px}.documentation-card-head{display:flex;justify-content:space-between;align-items:start;gap:16px}.documentation-code{display:block;margin-top:3px;color:var(--muted);font:11px "SFMono-Regular",Consolas,monospace;overflow-wrap:anywhere}.documentation-count{flex:0 0 auto;padding:3px 7px;border-radius:4px;background:var(--soft);color:var(--muted);font-size:10px}.documentation-description{margin:12px 0;color:var(--text);font-size:13px;line-height:1.65}.documentation-note{margin:10px 0;padding:9px 11px;border-left:2px solid var(--line);color:var(--muted);font-size:12px}.documentation-references{margin-top:12px;font-size:12px}.documentation-references>strong{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.documentation-references ul{list-style:none;padding:0;margin:6px 0 0}.documentation-references li{padding:5px 0;border-top:1px solid var(--line);overflow-wrap:anywhere}.documentation-references small{display:block;margin-top:1px;color:var(--muted);font-size:10px}.reference-empty{margin:12px 0 0;color:var(--muted);font-size:11px}.configuration-details{margin-top:13px;border-top:1px solid var(--line);padding-top:10px}.configuration-details summary{cursor:pointer;color:var(--accent);font-size:12px;font-weight:600}.configuration-details ul{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:10px 0 0;margin:0}.configuration-details li{max-width:100%;padding:4px 7px;border-radius:4px;background:var(--soft);font:10px "SFMono-Regular",Consolas,monospace;overflow-wrap:anywhere}.operator-group{margin-top:24px}.operator-group>h3{margin:0 0 10px;padding-bottom:8px;border-bottom:1px solid var(--line)}.operator-card{padding:16px}.documentation-error,.documentation-empty{grid-column:1/-1;margin:0;padding:22px;border:1px solid var(--line);border-radius:var(--radius);color:var(--muted);background:var(--surface)}.documentation-error{border-left:3px solid #b34938;color:var(--text)}@media(max-width:768px){.documentation-head{align-items:stretch;flex-direction:column;gap:14px}.documentation-search{width:100%}.documentation-grid{grid-template-columns:1fr}.documentation-card{padding:15px}.documentation-card-head{gap:10px}}
|
| 13 |
.operator-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1px;margin:16px 0;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.operator-summary>div{padding:12px;background:var(--surface);text-align:center}.operator-summary strong{display:block;font-size:20px;line-height:1.2;font-variant-numeric:tabular-nums}.operator-summary span{display:block;margin-top:4px;color:var(--muted);font-size:10px}.documentation-native-name{display:block;margin-top:2px;color:var(--muted);font-size:11px}.implementation-details{margin-top:14px;padding-top:11px;border-top:1px solid var(--line)}.implementation-details>summary{cursor:pointer;color:var(--accent);font-size:12px;font-weight:650}.implementation-list{display:grid;gap:9px;margin-top:11px}.implementation-entry{padding:12px;border:1px solid var(--line);border-radius:6px;background:var(--soft)}.implementation-head{display:flex;align-items:start;justify-content:space-between;gap:12px}.implementation-head strong{font-size:12px}.implementation-layer{flex:0 0 auto;padding:2px 6px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.05em}.implementation-entry dl{display:grid;gap:6px;margin:10px 0 0}.implementation-entry dl>div{display:grid;grid-template-columns:62px minmax(0,1fr);gap:8px}.implementation-entry dt{color:var(--muted);font-size:10px;font-weight:650;text-transform:uppercase;letter-spacing:.04em}.implementation-entry dd{margin:0;font-size:11px;line-height:1.5;overflow-wrap:anywhere}.implementation-entry .documentation-references{font-size:11px}.implementation-entry .documentation-references>strong{font-size:9px}
|
| 14 |
.dataset-catalog-panel{margin:18px 0 20px;padding:18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.dataset-catalog-head{display:flex;align-items:end;justify-content:space-between;gap:24px}.dataset-catalog-head>div:first-child{min-width:0}.dataset-catalog-controls{display:grid;grid-template-columns:180px minmax(220px,320px);gap:10px;flex:0 0 auto}.dataset-catalog{max-height:430px;overflow:auto;padding-right:5px}.dataset-category{margin-top:18px}.dataset-category:first-child{margin-top:0}.dataset-category>h3{position:sticky;top:0;z-index:1;display:flex;align-items:center;gap:8px;margin:0;padding:8px 2px;background:var(--surface);border-bottom:1px solid var(--line);font-size:14px}.dataset-category>h3 span{padding:2px 6px;border-radius:999px;background:var(--soft);color:var(--muted);font-size:9px}.dataset-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding-top:8px}.dataset-entry{min-width:0;padding:10px;border:1px solid var(--line);border-radius:6px;background:var(--bg)}.dataset-entry.measured{border-left:3px solid var(--accent)}.dataset-entry.selected{box-shadow:inset 0 0 0 1px var(--accent);background:var(--accent-soft)}.dataset-entry button{display:flex;align-items:start;justify-content:space-between;gap:8px;width:100%;padding:0;border:0;background:transparent;color:var(--text);text-align:left}.dataset-entry button:hover strong{color:var(--accent);text-decoration:underline}.dataset-entry strong{display:block;font-size:12px;line-height:1.35;overflow-wrap:anywhere}.dataset-entry small{display:block;margin-top:2px;color:var(--muted);font:9px "SFMono-Regular",Consolas,monospace;overflow-wrap:anywhere}.dataset-state{flex:0 0 auto;max-width:92px;padding:2px 5px;border-radius:4px;background:var(--soft);color:var(--muted);font-size:8px;line-height:1.35;text-align:right}.dataset-entry.measured .dataset-state{background:var(--accent-soft);color:var(--accent)}.dataset-entry p{margin:7px 0 0;color:var(--muted);font-size:9px;line-height:1.45}.dataset-entry .dataset-snapshot-note{color:#9a5a16}.dataset-links{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:6px}.dataset-links a,.dataset-source{font-size:9px;overflow-wrap:anywhere}
|
| 15 |
@media(max-width:1000px){.operator-summary{grid-template-columns:repeat(3,1fr)}.dataset-list{grid-template-columns:repeat(2,minmax(0,1fr))}.dataset-catalog-head{align-items:stretch;flex-direction:column;gap:12px}.dataset-catalog-controls{width:100%;grid-template-columns:1fr 1.5fr}}
|
| 16 |
@media(max-width:768px){.operator-summary{grid-template-columns:repeat(2,1fr)}.implementation-entry dl>div{grid-template-columns:1fr;gap:1px}.dataset-catalog-panel{padding:14px}.dataset-catalog-controls,.dataset-list{grid-template-columns:1fr}.dataset-catalog{max-height:520px}}
|
| 17 |
+
.documentation-action{display:inline-flex;margin-top:12px;font-size:11px}.dbp-audit-main{max-width:1440px}.audit-hero{display:flex;align-items:center;justify-content:space-between;gap:32px;padding:34px 0 24px}.audit-hero .intro-text{margin:0;max-width:820px}.audit-state-card{flex:0 0 230px;padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.audit-state-card>span,.audit-state-card>small{display:block;color:var(--muted);font-size:10px}.audit-state-card>strong{display:inline-block;margin:7px 0}.status-chip{padding:3px 8px;border-radius:999px;border:1px solid var(--line);background:var(--soft);font-size:10px;line-height:1.4;text-transform:uppercase;letter-spacing:.05em}.status-complete,.status-ok,.status-passed{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.status-failed{border-color:#b34938;background:#b3493818;color:#b34938}.status-incomplete,.status-pending,.status-running,.status-partial,.status-skipped,.status-n-a,.status-na,.status-unknown{color:var(--muted)}.audit-scope-notice{margin:0 0 26px}.audit-scope-notice p{max-width:110ch;margin:6px 0 0}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin:24px 0 12px}.section-heading>div:first-child{min-width:0}.audit-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1px;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--line)}.audit-summary>div{padding:14px;background:var(--surface);text-align:center}.audit-summary strong{display:block;font-size:22px;line-height:1.2;font-variant-numeric:tabular-nums}.audit-summary span{display:block;margin-top:5px;color:var(--muted);font-size:10px}.audit-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:24px 0}.audit-meta-grid article{padding:18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.audit-meta-grid h2{margin-bottom:12px}.audit-definitions{display:grid;grid-template-columns:minmax(120px,.45fr) 1fr;margin:0}.audit-definitions dt,.audit-definitions dd{padding:7px 0;border-top:1px solid var(--line);font-size:11px;overflow-wrap:anywhere}.audit-definitions dt{color:var(--muted);font-weight:600}.audit-definitions dd{margin:0}.runtime-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.runtime-status-card{padding:15px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.runtime-status-card header{display:flex;align-items:center;justify-content:space-between;gap:12px}.runtime-status-card h3{margin:0;font-size:15px}.runtime-status-card p{margin:8px 0 0;color:var(--muted);font-size:11px;overflow-wrap:anywhere}.audit-results{margin-top:26px}.audit-filters{display:grid;grid-template-columns:.8fr .9fr 1fr 1.8fr;gap:12px;padding:15px;border:1px solid var(--line);border-radius:var(--radius);background:var(--soft)}.audit-table-wrap{max-height:610px}.audit-table-wrap thead th:nth-child(3),.audit-table-wrap thead th:nth-child(4),.audit-table-wrap tbody td:nth-child(3),.audit-table-wrap tbody td:nth-child(4){text-align:left}.audit-table-wrap td{font-size:11px}.audit-table-wrap .mode-count{display:block;color:var(--muted);font-size:9px}.audit-pagination{display:flex;align-items:center;justify-content:center;gap:14px;padding:12px}.audit-pagination span{color:var(--muted);font-size:11px}.dataset-receipt-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-height:460px;overflow:auto;padding-right:5px}.dataset-receipt-card{min-width:0;padding:10px;border:1px solid var(--line);border-radius:6px;background:var(--surface)}.dataset-receipt-card header{display:flex;align-items:start;justify-content:space-between;gap:8px}.dataset-receipt-card strong{display:block;font-size:11px;overflow-wrap:anywhere}.dataset-receipt-card small{display:block;color:var(--muted);font-size:9px}.dataset-receipt-card p{margin:6px 0 0;color:var(--muted);font-size:9px;line-height:1.45;overflow-wrap:anywhere}.audit-reading-note{max-width:100ch;margin:30px 0}.audit-reading-note p{color:var(--muted);font-size:12px}.audit-validation-error{color:#b34938}.audit-validation-ok{color:var(--muted)}
|
| 18 |
@media(max-width:1000px){.audit-summary{grid-template-columns:repeat(3,1fr)}.audit-filters{grid-template-columns:repeat(2,1fr)}.dataset-receipt-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
|
| 19 |
@media(max-width:768px){.audit-hero{align-items:stretch;flex-direction:column;padding-top:24px}.audit-state-card{flex:auto;width:100%}.audit-summary{grid-template-columns:repeat(2,1fr)}.audit-meta-grid,.runtime-status-grid,.audit-filters,.dataset-receipt-grid{grid-template-columns:1fr}.section-heading{align-items:stretch;flex-direction:column;gap:10px}.audit-definitions{grid-template-columns:1fr}.audit-definitions dd{padding-top:0;border-top:0}.audit-results .toolbar-actions{width:100%}.audit-results .toolbar-actions button{flex:1}}
|