evals-lab 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +66 -0
- package/README.md +17 -9
- package/lab/VERSION +1 -1
- package/lab/demo/datasets/demo-1.json +2187 -1644
- package/lab/demo/datasets/demo-2.json +1870 -1485
- package/lab/demo/manifest.json +2 -2
- package/lab/demo/pipelines/demo-1.json +3 -7
- package/lab/demo/pipelines/demo-2.json +3 -7
- package/lab/evals-core.mjs +429 -434
- package/lab/kinds/list.mjs +1 -1
- package/lab/metrics/builtin.mjs +96 -18
- package/lab/run-evals.js +35 -33
- package/lab/server.py +296 -82
- package/lab/web/dist/assets/{gallery-o7c4lfpn.css → gallery-DFeJkfUw.css} +1 -1
- package/lab/web/dist/assets/gallery-DRBlZ8mP.js +3 -0
- package/lab/web/dist/assets/main-DMpQmW8l.js +21 -0
- package/lab/web/dist/assets/main-wfqC6HcM.css +1 -0
- package/lab/web/dist/assets/tokens-BEn6_hVz.css +1 -0
- package/lab/web/dist/assets/tokens-iGpvbD5R.js +55 -0
- package/lab/web/dist/gallery.html +4 -4
- package/lab/web/dist/index.html +4 -4
- package/package.json +3 -2
- package/lab/web/dist/assets/gallery-DsetJSXv.js +0 -3
- package/lab/web/dist/assets/main-B-VtDGxC.css +0 -1
- package/lab/web/dist/assets/main-ERoD2Kll.js +0 -19
- package/lab/web/dist/assets/tokens-ClRQ7Mui.js +0 -51
- package/lab/web/dist/assets/tokens-D3C8O2Ib.css +0 -1
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
6
|
<meta name="color-scheme" content="dark light">
|
|
7
7
|
<title>Components</title>
|
|
8
|
-
<script type="module" crossorigin src="/assets/gallery-
|
|
9
|
-
<link rel="modulepreload" crossorigin href="/assets/tokens-
|
|
10
|
-
<link rel="stylesheet" crossorigin href="/assets/tokens-
|
|
11
|
-
<link rel="stylesheet" crossorigin href="/assets/gallery-
|
|
8
|
+
<script type="module" crossorigin src="/assets/gallery-DRBlZ8mP.js"></script>
|
|
9
|
+
<link rel="modulepreload" crossorigin href="/assets/tokens-iGpvbD5R.js">
|
|
10
|
+
<link rel="stylesheet" crossorigin href="/assets/tokens-BEn6_hVz.css">
|
|
11
|
+
<link rel="stylesheet" crossorigin href="/assets/gallery-DFeJkfUw.css">
|
|
12
12
|
</head>
|
|
13
13
|
<body>
|
|
14
14
|
<!-- The fixtures gallery: every component in every state, for the eye and
|
package/lab/web/dist/index.html
CHANGED
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
6
|
<meta name="color-scheme" content="dark light">
|
|
7
7
|
<title>Evals Lab</title>
|
|
8
|
-
<script type="module" crossorigin src="/assets/main-
|
|
9
|
-
<link rel="modulepreload" crossorigin href="/assets/tokens-
|
|
10
|
-
<link rel="stylesheet" crossorigin href="/assets/tokens-
|
|
11
|
-
<link rel="stylesheet" crossorigin href="/assets/main-
|
|
8
|
+
<script type="module" crossorigin src="/assets/main-DMpQmW8l.js"></script>
|
|
9
|
+
<link rel="modulepreload" crossorigin href="/assets/tokens-iGpvbD5R.js">
|
|
10
|
+
<link rel="stylesheet" crossorigin href="/assets/tokens-BEn6_hVz.css">
|
|
11
|
+
<link rel="stylesheet" crossorigin href="/assets/main-wfqC6HcM.css">
|
|
12
12
|
</head>
|
|
13
13
|
<body>
|
|
14
14
|
<div id="root"></div>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "evals-lab",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "A browser bench for grading what a model answers: two wordings side by side over a set of files, scored against answers fixed in advance.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"author": "Grainbox Limited",
|
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
},
|
|
10
10
|
"files": [
|
|
11
11
|
"bin/",
|
|
12
|
-
"lab/"
|
|
12
|
+
"lab/",
|
|
13
|
+
"CHANGELOG.md"
|
|
13
14
|
],
|
|
14
15
|
"engines": {
|
|
15
16
|
"node": ">=22.18"
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{R as e,T as t,X as n,Y as r,_ as i,c as a,d as o,f as s,g as c,h as l,m as u,n as d,r as f,v as p}from"./tokens-ClRQ7Mui.js";var m=n(),h=r(),g=[{id:`text`,label:`Plain text`,settings:[]},{id:`list`,label:`List`,settings:[{key:`parse`,label:`Parse as`,type:`select`,choices:[{value:`csv`,label:`CSV`},{value:`lines`,label:`One a line`},{value:`json`,label:`JSON array`}]},{key:`preamble`,label:`Ignore preamble`,type:`checkbox`}]}],_=[{id:`case`,label:`Case`,accepts:[`list`],options:[{key:`mode`,label:`Mode`,type:`select`,choices:[{value:`LOWER`,label:`lower`},{value:`SENTENCE`,label:`Sentence`},{value:`TITLE`,label:`Title`},{value:`UPPER`,label:`UPPER`},{value:`NONE`,label:`As replied`}]}],defaults:()=>({type:`case`,mode:`LOWER`})},{id:`join`,label:`Join`,accepts:[`list`],options:[{key:`with`,label:`Separator`,type:`text`}],defaults:()=>({type:`join`,with:`, `})}],v=[{name:`language`,type:`value`,value:`English UK`},{name:`geo-location`,type:`value`,value:`Hamilton, Waikato, New Zealand`},{name:`geo`,type:`block`,enabled:!1}],y=[{path:`group/open`,title:`Group, open`},{path:`group/closed`,title:`Group, closed with a note`},{path:`group/no-menu`,title:`Group without actions`},{path:`group/sub`,title:`Sub-group, level 3`},{path:`group/depth`,title:`Group, three levels deep`},{path:`group/renaming`,title:`Group, renaming`},{path:`menu/disabled`,title:`Menu with a disabled item`},{path:`repeater/empty`,title:`Repeater, empty`},{path:`repeater/min`,title:`Repeater at min 1`},{path:`repeater/between`,title:`Repeater, two of four`},{path:`repeater/max`,title:`Repeater at max`},{path:`repeater/locked`,title:`Repeater, a locked row`},{path:`props/controls`,title:`Property table, every control`},{path:`props/required`,title:`Property table, required only`},{path:`props/long`,title:`Property table, long values`},{path:`props/widths`,title:`Property table, a width per value`},{path:`props/secret`,title:`Property table, a key held and not held`},{path:`props/code`,title:`Property table, an endpoint and a payload`},{path:`table/sortable`,title:`Table, sortable headers and a row menu`},{path:`table/paged`,title:`Table, paged ten at a time`},{path:`table/filter`,title:`Table with a filter bar`},{path:`table/filter-on`,title:`Table, filtered, with a scope`},{path:`edit/form`,title:`Edit modal, a profile`},{path:`edit/plain`,title:`Edit modal, one section and no menu`},{path:`edit/long`,title:`Edit modal, a form that scrolls`},{path:`edit/status`,title:`Edit modal, a status that is a refusal`},{path:`view/tokens`,title:`Token mappings`},{path:`view/output`,title:`Output with Case`},{path:`view/output-text`,title:`Output, plain text`},{path:`view/output-two`,title:`Output with two modifiers`},{path:`view/output-twice`,title:`Output with the same modifier twice`},{path:`view/output-none`,title:`Responses, read as text`},{path:`view/output-flow`,title:`Responses with Read as`}],b=e(),x=()=>{},S=(...e)=>e.map(e=>({label:e,icon:e===`Remove`?p.remove:e===`Clone`?p.clone:p.rename,onSelect:x,destructive:e===`Remove`}));function C({start:e,min:t,max:n,locked:r}){let[i,a]=(0,m.useState)(e);return(0,b.jsx)(l,{noun:`scenario`,items:i,...t===void 0?{}:{min:t},...n===void 0?{}:{max:n},...r?{locked:r}:{},onAdd:()=>a([...i,`Target ${i.length+1}`]),onRemove:e=>a(i.filter((t,n)=>n!==e)),onClone:e=>a([...i.slice(0,e+1),`${i[e]} copy`,...i.slice(e+1)]),onRename:x,empty:`No targets yet.`,renderItem:(e,t,n)=>(0,b.jsx)(c,{id:`scenario-${t}`,title:e,level:3,actions:n,children:(0,b.jsx)(`p`,{className:`note`,children:`A Target profile and a prompt for each job.`})},`${e}-${t}`)})}function w(){let[e,t]=(0,m.useState)(v),n=(n,r)=>t(e.map(e=>e.name===n?{...e,...r}:e));return(0,b.jsx)(d,{mappings:e,onValue:(e,t)=>n(e,{value:t}),onEnabled:(e,t)=>n(e,{enabled:t}),onEdit:x,onRemove:n=>t(e.filter(e=>e.name!==n)),onAdd:()=>t([...e,{name:`token${e.length+1}`,type:`value`,value:``}])})}function T({start:e,format:t=!0,readAs:n}){let[r,i]=(0,m.useState)(e),[a,o]=(0,m.useState)(t),[s,c]=(0,m.useState)(n);return(0,b.jsx)(f,{id:`output`,out:r,format:a,readAs:s,outputKinds:g,modifiers:_,onAddFormat:()=>o(!0),onRemoveFormat:()=>{o(!1),i({kind:`text`,modifiers:[]})},onReadAs:c,onKind:e=>i({kind:e,modifiers:r.modifiers.filter(t=>_.find(e=>e.id===t.type)?.accepts.includes(e))}),onModifier:(e,t)=>i({...r,modifiers:r.modifiers.map((n,r)=>r===e?t:n)}),onAddModifier:e=>i({...r,modifiers:[...r.modifiers,e]}),onRemoveModifier:e=>i({...r,modifiers:r.modifiers.filter((t,n)=>n!==e)})})}function E(){let[e,t]=(0,m.useState)(`Job 1`),[n,r]=(0,m.useState)(!0);return(0,b.jsx)(c,{id:`renaming`,title:e,actions:[{label:`Rename`,icon:p.rename,onSelect:()=>r(!0)}],...n?{rename:{value:e,onCommit:n=>{t(n||e),r(!1)},onCancel:()=>r(!1)}}:{},children:(0,b.jsx)(`p`,{className:`note`,children:`Enter or leaving keeps the name; Escape cancels.`})})}function D({sections:e,menu:n,status:r,statusBad:i,outcome:a}){return(0,b.jsx)(o,{title:`Lab Ollama`,...r?{status:r}:{},...i?{statusBad:!0}:{},...n?{menu:n}:{},sections:e,actions:[{label:`Test connection`,icon:t,onSelect:x,outcome:a?{label:a,onOpen:x}:void 0}],onClose:x})}var O=()=>[{key:`name`,label:`Name`,required:!0,control:{type:`text`,value:`Lab Ollama`,onChange:x}},{key:`type`,label:`Type`,required:!0,control:{type:`select`,value:`ollama`,onChange:x,options:[{value:`ollama`,label:`Ollama (Local)`},{value:`anthropic`,label:`Anthropic`}]}},{key:`url`,label:`Address`,control:{type:`text`,value:``,placeholder:`the lab's Ollama`,onChange:x}},{key:`key`,label:`Key`,control:{type:`secret`,value:``,onChange:x}},{key:`model`,label:`Model`,control:{type:`text`,value:`minicpm-v4.6:latest`,onChange:x}}],k=()=>[{key:`seed`,label:`Seed`,control:{type:`text`,value:``,placeholder:`1234`,marker:`default`,onChange:x}},{key:`nPredict`,label:`Reply tokens`,control:{type:`text`,value:``,size:`num`,marker:`server`,onChange:x}},{key:`temperature`,label:`Temperature`,control:{type:`text`,value:`0.3`,onChange:x}},{key:`repeatPenalty`,label:`Repeat penalty`,control:{type:`text`,value:``,size:`num`,marker:`server`,onChange:x}}],A=()=>[{key:`endpoint`,label:`Endpoint`,required:!0,control:{type:`code`,text:`http://127.0.0.1:11434/api/chat`}},{key:`prompt`,label:`Prompt`,required:!0,control:{type:`static`,text:`(prompt)`}},{key:`model`,label:`model`,control:{type:`code`,text:`minicpm-v4.6:latest`}},{key:`options`,label:`options`,control:{type:`code`,text:`{"seed":1234,"temperature":0.3}`}}],j={key:`kind`,label:`Response Format`,required:!0,control:{type:`select`,value:`list`,onChange:x,options:g.map(e=>({value:e.id,label:e.label}))}},M={"group/open":()=>(0,b.jsx)(c,{id:`g`,title:`Tests`,actions:S(`Change`,`Remove`),children:(0,b.jsx)(`p`,{className:`note`,children:`The graded set.`})}),"group/closed":()=>(0,b.jsx)(c,{id:`g`,title:`Content`,open:!1,note:`Sample library, 63 files`,actions:S(`Change`,`Remove`)}),"group/no-menu":()=>(0,b.jsx)(c,{id:`g`,title:`Mapping`,children:(0,b.jsx)(`p`,{className:`note`,children:`Nothing to do to it.`})}),"group/sub":()=>(0,b.jsx)(c,{id:`g`,title:`Job 1`,actions:S(`Rename`,`Remove`),children:(0,b.jsx)(c,{id:`g-sub`,title:`Scenarios`,level:3,actions:S(`Clear`),children:(0,b.jsx)(`p`,{className:`note`,children:`Inside a pane.`})})}),"group/depth":()=>(0,b.jsxs)(c,{id:`g`,title:`Job 1`,actions:S(`Rename`,`Remove`),children:[(0,b.jsxs)(c,{id:`g-scenarios`,title:`Scenarios`,level:3,children:[(0,b.jsx)(c,{id:`g-plain`,title:`Plain`,level:3,actions:S(`Rename`,`Remove`),children:(0,b.jsx)(`p`,{className:`note`,children:`A pane, a section of it, and a thing with a name inside that section.`})}),(0,b.jsx)(c,{id:`g-strict`,title:`Strict`,level:3,actions:S(`Rename`,`Remove`)})]}),(0,b.jsx)(c,{id:`g-output`,title:`Output`,level:3,children:(0,b.jsx)(`p`,{className:`note`,children:`The next section of the same pane.`})})]}),"group/renaming":()=>(0,b.jsx)(E,{}),"menu/disabled":()=>(0,b.jsx)(c,{id:`g`,title:`Target 4`,actions:[{label:`Rename`,icon:p.rename,onSelect:x},{label:`Clone`,icon:p.clone,onSelect:x,disabled:!0},{label:`Remove`,icon:p.remove,onSelect:x,destructive:!0}]}),"repeater/empty":()=>(0,b.jsx)(C,{start:[]}),"repeater/min":()=>(0,b.jsx)(C,{start:[`Target 1`],min:1}),"repeater/between":()=>(0,b.jsx)(C,{start:[`Target 1`,`Target 2`],min:1,max:4}),"repeater/max":()=>(0,b.jsx)(C,{start:[`Target 1`,`Target 2`,`Target 3`,`Target 4`],min:1,max:4}),"repeater/locked":()=>(0,b.jsx)(C,{start:[`Reply`,`Target 1`],locked:(e,t)=>t===0}),"props/controls":()=>(0,b.jsx)(s,{label:`Controls`,onRename:x,onRemove:x,onAdd:x,addLabel:`Add row`,rows:[j,{key:`language`,label:`{language}`,code:!0,control:{type:`text`,value:`English UK`,onChange:x}},{key:`geo`,label:`{geo}…{/geo}`,code:!0,control:{type:`static`,text:`Block`},enabled:{checked:!0,onChange:x}},{key:`image`,label:`Image`,control:{type:`checkbox`,checked:!0,label:`Send`,onChange:x}}]}),"props/required":()=>(0,b.jsx)(s,{label:`Output`,onRemove:x,rows:[j]}),"props/long":()=>(0,b.jsx)(s,{label:`Long`,onRemove:x,rows:[{key:`geo-location`,label:`{geo-location}`,code:!0,control:{type:`text`,value:`Hamilton, Waikato, New Zealand, Southern Hemisphere, Earth`,onChange:x}},{key:`averylongtokennamethatdoesnotbreak`,label:`{averylongtokennamethatdoesnotbreak}`,code:!0,control:{type:`text`,value:``,onChange:x}}]}),"props/widths":()=>(0,b.jsx)(s,{label:`Widths`,rows:[{key:`type`,label:`Type`,required:!0,control:{type:`select`,value:`ollama`,onChange:x,options:[{value:`ollama`,label:`Ollama (Local)`},{value:`anthropic`,label:`Anthropic`}]}},{key:`url`,label:`Address`,control:{type:`text`,value:``,placeholder:`the lab's Ollama`,onChange:x}},{key:`model`,label:`Model`,control:{type:`text`,value:`minicpm-v4.6:latest`,onChange:x}},{key:`seed`,label:`Seed`,control:{type:`text`,value:``,placeholder:`1234`,marker:`default`,onChange:x}},{key:`nPredict`,label:`Reply tokens`,control:{type:`text`,value:``,size:`num`,marker:`server`,onChange:x}},{key:`temperature`,label:`Temperature`,control:{type:`text`,value:`0.2`,onChange:x}},{key:`grammar`,label:`Grammar`,control:{type:`textarea`,value:`root ::= item (", " item)*
|
|
2
|
-
item ::= [a-z ]+`,onChange:x}}]}),"props/secret":()=>(0,b.jsx)(s,{label:`Keys`,rows:[{key:`held`,label:`Key`,control:{type:`secret`,value:`sk-not-a-real-key-0000`,onChange:x}},{key:`empty`,label:`Key`,control:{type:`secret`,value:``,onChange:x}}]}),"props/code":()=>(0,b.jsx)(s,{label:`Debug`,rows:[{key:`endpoint`,label:`Endpoint`,required:!0,control:{type:`code`,text:`https://api.anthropic.com/v1/messages`}},{key:`prompt`,label:`Prompt`,required:!0,control:{type:`static`,text:`(prompt)`}},{key:`model`,label:`model`,control:{type:`code`,text:`claude-sonnet-4-5-20250929`}},{key:`options`,label:`options`,control:{type:`code`,text:`{"seed":1234,"temperature":0}`}},{key:`stream`,label:`stream`,control:{type:`code`,text:`false`}}]}),"table/sortable":()=>(0,b.jsx)(I,{count:4}),"table/paged":()=>(0,b.jsx)(I,{count:35,pageSize:10}),"table/filter":()=>(0,b.jsx)(F,{}),"table/filter-on":()=>(0,b.jsx)(F,{search:`IMG_40`,size:`large`}),"edit/form":()=>(0,b.jsx)(D,{outcome:`Connected`,menu:[{label:`Restore…`,icon:p.restore,onSelect:x},{label:`Apply preset: repeat 1.3`,icon:p.preset,onSelect:x}],sections:[{key:`identity`,rows:O()},{key:`settings`,title:`Settings`,rows:k()},{key:`debug`,title:`Debug`,rows:A(),folded:!0}]}),"edit/plain":()=>(0,b.jsx)(o,{title:`A mapping`,sections:[{key:`one`,rows:[j,{key:`with`,label:`Separator`,control:{type:`text`,value:`, `,onChange:x}}]}],onClose:x}),"edit/long":()=>(0,b.jsx)(D,{menu:[{label:`Restore…`,icon:p.restore,onSelect:x,disabled:!0}],sections:[{key:`identity`,rows:O()},{key:`settings`,title:`Settings`,rows:[...k(),{key:`grammar`,label:`Grammar`,control:{type:`textarea`,value:`root ::= item (", " item)*
|
|
3
|
-
item ::= [a-z ]+`,onChange:x}},{key:`imagePosition`,label:`Image position`,control:{type:`select`,value:`after`,onChange:x,options:[{value:`before`,label:`before the prompt`},{value:`after`,label:`after the prompt`}]}},{key:`cachePrompt`,label:`Cache prompt`,control:{type:`select`,value:`off`,onChange:x,options:[{value:`on`,label:`on`},{value:`off`,label:`off`}]}}]},{key:`debug`,title:`Debug`,rows:A(),folded:!0}]}),"edit/status":()=>(0,b.jsx)(D,{status:`the relay could not reach http://127.0.0.1:11434`,statusBad:!0,sections:[{key:`identity`,rows:O()}]}),"view/tokens":()=>(0,b.jsx)(c,{id:`g`,title:`Token mappings`,level:3,children:(0,b.jsx)(w,{})}),"view/output":()=>(0,b.jsx)(T,{start:{kind:`list`,parse:`csv`,modifiers:[{type:`case`,mode:`LOWER`}]}}),"view/output-text":()=>(0,b.jsx)(T,{start:{kind:`text`,modifiers:[]}}),"view/output-two":()=>(0,b.jsx)(T,{start:{kind:`list`,parse:`csv`,modifiers:[{type:`case`,mode:`TITLE`},{type:`join`,with:` | `}]}}),"view/output-twice":()=>(0,b.jsx)(T,{start:{kind:`list`,parse:`csv`,modifiers:[{type:`case`,mode:`TITLE`},{type:`case`,mode:`LOWER`}]}}),"view/output-none":()=>(0,b.jsx)(T,{start:{kind:`text`,modifiers:[]},format:!1}),"view/output-flow":()=>(0,b.jsx)(T,{start:{kind:`text`,modifiers:[]},readAs:`@body('Ask')?['content']?[0]?['text']`})},N=y.map(e=>({...e,render:M[e.path]})),P=e=>Array.from({length:e},(e,t)=>({name:`IMG_${String(4e3+t*7919%97).padStart(4,`0`)}.jpg`,kb:t*37%900+40}));function F({search:e=``,size:t=`all`}){let[n,r]=(0,m.useState)(e),[i,o]=(0,m.useState)(t),[s,l]=(0,m.useState)(`shoot`),d=P(12),f=d.filter(e=>e.name.toLowerCase().includes(n.trim().toLowerCase())&&(i===`all`||i===`large`==e.kb>=400));return(0,b.jsxs)(c,{id:`files`,title:`Files`,children:[(0,b.jsx)(u,{noun:`files`,search:{label:`Name`,placeholder:`Search names`,value:n,onChange:r},count:{shown:f.length,total:d.length},filters:[{key:`source`,label:`Source`,value:s,neutral:null,onChange:l,options:[{value:`shoot`,label:`Tuesday shoot`},{value:`samples`,label:`Sample library`}]},{key:`size`,label:`Size`,value:i,onChange:o,options:[{value:`all`,label:`All`},{value:`small`,label:`Small`},{value:`large`,label:`Large`}]}]}),f.length?(0,b.jsx)(a,{label:`Files`,rows:f,rowKey:e=>e.name,columns:[{key:`name`,header:`Name`,cell:e=>e.name},{key:`size`,header:`Size`,sort:e=>e.kb,cell:e=>`${e.kb} KB`}]}):(0,b.jsx)(`p`,{className:`note`,children:`No files match these filters.`})]})}function I({count:e,pageSize:t}){let n=P(e);return(0,b.jsx)(c,{id:`files`,title:`Files`,children:(0,b.jsx)(a,{label:`Files`,rows:n,rowKey:e=>e.name,pageSize:t??null,columns:[{key:`name`,header:`Name`,cell:e=>e.name},{key:`size`,header:`Size`,sort:e=>e.kb,cell:e=>`${e.kb} KB`},{key:`menu`,header:``,sort:null,cell:e=>(0,b.jsx)(i,{label:`${e.name} actions`,actions:[{label:`Rename`,icon:p.rename,onSelect:x},{label:`Remove`,icon:p.remove,destructive:!0,onSelect:x}]})}]})})}var L=()=>decodeURIComponent(location.hash.replace(/^#\/?/,``));function R(){let[e,t]=(0,m.useState)(L);(0,m.useEffect)(()=>{let e=()=>t(L());return window.addEventListener(`hashchange`,e),()=>window.removeEventListener(`hashchange`,e)},[]);let n=N.find(t=>t.path===e);return n?(0,b.jsxs)(`main`,{className:`gallery-one`,"data-route":n.path,children:[(0,b.jsxs)(`nav`,{className:`gallery-nav`,children:[(0,b.jsx)(`a`,{href:`#/`,children:`All`}),(0,b.jsx)(`span`,{children:n.title})]}),n.render()]}):(0,b.jsxs)(`main`,{className:`gallery-index`,"data-route":``,children:[(0,b.jsx)(`h1`,{children:`Components`}),(0,b.jsx)(`ul`,{children:N.map(e=>(0,b.jsxs)(`li`,{children:[(0,b.jsx)(`a`,{href:`#/${e.path}`,children:e.title}),` `,(0,b.jsx)(`code`,{children:e.path})]},e.path))})]})}(0,h.createRoot)(document.getElementById(`root`)).render((0,b.jsx)(m.StrictMode,{children:(0,b.jsx)(R,{})}));
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.figures{--fig-lead:32px;--fig-lead-dense:22px;align-items:stretch;gap:var(--s4);display:flex}.fig{align-content:start;gap:2px;min-width:0;display:grid}.fig-label{font-size:var(--t-label);color:var(--dim)}.fig-value{font-size:var(--t-body);color:var(--ink);font-variant-numeric:tabular-nums lining-nums}.fig-good{color:var(--sage)}.fig-bad{color:var(--rust)}.fig-lead{flex:none}.fig-headline{gap:var(--s1);display:grid}.fig-headline>.fig-value{font-size:var(--fig-lead);letter-spacing:-.01em;font-weight:600;line-height:1.1}.fig-under{font-size:var(--t-label);color:var(--ink)}.fig-part{font-variant-numeric:tabular-nums lining-nums}.fig-of{color:var(--dim)}.fig-rest{align-content:start;gap:var(--s3) var(--s5);padding-left:var(--s4);border-left:1px solid var(--line);flex-wrap:wrap;flex:auto;display:flex}.figures.dense{display:block}.figures.dense .fig-headline{align-items:baseline;gap:var(--s1) var(--s2);flex-wrap:wrap;display:flex}.figures.dense .fig-headline>.fig-value{font-size:var(--fig-lead-dense)}.figures.dense>.fig-rest{margin-top:var(--s2);padding:var(--s2) 0 0;border-left:0;border-top:1px solid var(--line);gap:var(--s2) var(--s4)}@media (width<=600px){.figures{display:block}.figures>.fig-rest{margin-top:var(--s3);padding:var(--s3) 0 0;border-left:0;border-top:1px solid var(--line);gap:var(--s2) var(--s4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}}.ds-meta{gap:var(--s1) var(--s4);font-size:var(--t-label);color:var(--dim);flex-wrap:wrap;display:flex}.ds-meta b{color:var(--ink);font-weight:600}.ds-empty .note{margin:0}.ds-empty-actions{gap:var(--s2);flex-wrap:wrap;display:flex}.raw-content{width:100%;min-height:40vh;padding:var(--s3);resize:none;background:var(--surface2);color:var(--ink);border:1px solid var(--line);border-radius:var(--r-ctl);font:var(--t-note) / 1.5 var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;flex:1}.raw-foot{align-items:center;gap:var(--s3);margin-top:var(--s3);flex-wrap:wrap;display:flex}.raw-foot .note{flex:auto;margin:0}.raw-foot .note.bad{color:var(--rust)}.datasets{gap:var(--s4);grid-template-columns:minmax(0,1fr);display:grid}.caseform{gap:var(--s3);display:grid}.cfrow{gap:var(--s2);grid-template-columns:minmax(88px,30%) minmax(0,1fr);align-items:start;display:grid}.cflabel{font-size:var(--t-label);color:var(--dim);padding-top:var(--s1)}.cfgroups{gap:var(--s2);display:grid}.cf-group-note{font-size:var(--t-note);color:var(--dim)}.cfchips{gap:var(--s1);flex-wrap:wrap;align-items:center;display:flex}.cfchips .chip{align-items:center;gap:var(--s1);display:inline-flex}.chipx{padding:0 var(--s1);color:var(--dim);font-size:var(--t-label);background:0 0;border:0;min-height:auto;line-height:1}.chipx:hover,.chipx:focus-visible{color:var(--rust)}@media (pointer:coarse),(width<=600px){.chipx{min-width:44px;min-height:44px}}.cfadd{gap:var(--s1);display:flex}.cfadd input{width:7em}.cfrow textarea{width:100%;min-height:64px;padding:var(--s2);border-radius:var(--r-ctl);background:var(--surface2);color:var(--ink);border:1px solid var(--line);font:inherit}.cf-preview img{border:1px solid var(--line);border-radius:var(--r-ctl);max-width:100%;max-height:220px;display:block}.cf-preview .note{margin:var(--s1) 0 0;overflow-wrap:anywhere}.spin{animation:1s linear infinite cfs-spin}@keyframes cfs-spin{to{transform:rotate(360deg)}}.ev-all{margin-left:var(--s2);flex:none}@media (width<=600px){.ev-all{margin-left:calc(var(--s2) + 1px)}}.ev-from{gap:var(--s1) var(--s3);margin:0 0 var(--s3);flex-wrap:wrap;display:flex}.ev-empty .note a{color:var(--amber)}.ev-select{align-items:center;gap:var(--s2);padding:var(--s2) var(--s3);margin-bottom:var(--s3);border:1px solid var(--line);border-radius:var(--r-ctl);font-size:var(--t-label);flex-wrap:wrap;display:flex}.ev-select.on{background:var(--amber);color:var(--on-amber);border-color:#0000}.ev-count{font-weight:600}.ev-select.on .ev-hidden{opacity:.8}.ev-select-acts{align-items:center;gap:var(--s2);margin-left:auto;display:flex}.ev-select.on .ghost{color:var(--on-amber);border-color:var(--on-amber)}.ev-select.on .ghost:hover{color:var(--amber);background:var(--on-amber)}.ev-select.on .menu-btn{color:var(--on-amber)}.ev-select .menu-pop{color:var(--ink)}.ev-pick{width:1%}.ev-vh{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.ev-check{cursor:pointer;justify-content:center;align-items:center;min-width:24px;min-height:24px;display:inline-flex}.ev-check input{margin:0}@media (pointer:coarse),(width<=600px){.ev-check{min-width:44px;min-height:44px}}.dstable tr[data-selected] td{background:var(--surface2)}.dstable{border-collapse:collapse;width:100%}.dstable th{text-align:left;font-size:var(--t-label);color:var(--dim);padding:var(--s2);border-bottom:1px solid var(--line);white-space:nowrap;font-weight:600}.dstable td{padding:var(--s2);border-bottom:1px solid var(--line);vertical-align:middle}.dstable .ds-todo{color:var(--amber)}.ds-file,.ds-mapped{min-height:auto;font:inherit;color:var(--amber);text-align:left;overflow-wrap:anywhere;background:0 0;border:0;padding:0}.ds-mapped{font-size:var(--t-label)}.ds-nomatch{font-size:var(--t-label);color:var(--dim)}.ds-progress{margin:0 0 var(--s3)}.ds-map-say{margin:var(--s2) 0 0}.ds-add,.ds-recents{margin-top:var(--s3)}.ds-recent-list{gap:var(--s2);margin-top:var(--s2);flex-wrap:wrap;display:flex}.ds-picker-actions{margin-top:var(--s4);justify-content:flex-end;display:flex}@media (pointer:coarse),(width<=600px){.ds-file,.ds-mapped{min-height:44px}}.dstable .ds-menu{text-align:right}.dstable .menu{margin-left:auto}.dstable tr:last-of-type td{border-bottom:0}.ev-bulk{width:min(100%,480px)}.ev-changes{margin:var(--s3) 0 0}.ev-refusal{margin-top:var(--s3);color:var(--rust);font-size:var(--t-label)}.ev-refusal-head{margin:0 0 var(--s1);font-weight:600}.ev-refusal ul{padding-left:var(--s4);gap:var(--s1);margin:0;display:grid}.ev-refusal li{overflow-wrap:anywhere}.ev-refusal b{font-weight:600}@media (width<=600px){.dstable,.dstable :is(thead,tbody,th,td){display:block}.dstable thead{display:none}.dstable tbody tr{align-items:center;column-gap:var(--s2);row-gap:var(--s1);border:1px solid var(--line);border-radius:var(--r-pane);margin-bottom:var(--s2);padding:var(--s1) var(--s2);flex-wrap:wrap;display:flex}.dstable td{border:0;padding:0}.dstable td.ev-pick{flex:none;width:auto}.dstable tbody tr[data-selected]{background:var(--surface2)}.dstable tr[data-selected] td{background:0 0}.dstable td[data-label=File]{flex:1 1 calc(100% - var(--ctl) - 44px - 2 * var(--s2));overflow-wrap:anywhere;font-weight:600}.dstable .ds-menu{flex:none;order:1}.dstable td[data-label=Expectations]{order:2}.dstable td[data-label=Count]{order:3}.dstable td[data-label=Status]{order:4}.dstable td[data-label=Map]{order:5}.dstable td[data-label=Expectations]{margin-left:calc(44px + var(--s2))}.dstable :is(td[data-label=Map],td[data-label=Count])[data-state=none]{display:none}.dstable :is(td[data-label=Expectations],td[data-label=Count],td[data-label=Status],td[data-label=Map]){font-size:var(--t-label)}.dstable td[data-label=Expectations]:before{content:attr(data-label) " ";color:var(--dim)}.dstable td[data-label=Count]:before{content:"· Count ";color:var(--dim)}.dstable td[data-label=Status]:before,.dstable td[data-label=Map]:before{content:"· ";color:var(--faint)}.ds-cases{max-height:calc(100vh - 300px);overflow:auto}.ds-cases .dstable{padding-bottom:56px}}.pltable{border-collapse:collapse;width:100%}.pltable th{text-align:left;font-size:var(--t-label);color:var(--dim);padding:var(--s2);border-bottom:1px solid var(--line);white-space:nowrap;font-weight:600}.pltable td{padding:var(--s2);border-bottom:1px solid var(--line);vertical-align:middle}.pltable tr:last-of-type td{border-bottom:0}.pltable .pl-num{font-variant-numeric:tabular-nums}.pltable .pl-menu{text-align:right;width:1%}.pltable .menu{margin-left:auto}.pl-open{width:100%;min-height:auto;font:inherit;text-align:left;color:var(--amber);background:0 0;border:0;justify-items:start;gap:2px;padding:0;display:grid}.pl-title{align-items:center;gap:var(--s2);overflow-wrap:anywhere;flex-wrap:wrap;display:inline-flex}.pl-preview{color:var(--dim);font-size:var(--t-note);-webkit-line-clamp:2;line-clamp:2;white-space:pre-line;overflow-wrap:anywhere;-webkit-box-orient:vertical;font-weight:400;display:-webkit-box;overflow:hidden}.pl-default{border:1px solid var(--amber);min-height:18px;color:var(--amber);font-size:var(--t-caption);border-radius:999px;align-items:center;padding:0 6px;font-weight:600;line-height:1;display:inline-flex}.pl-add{margin-top:var(--s3)}.pl-run{color:var(--amber);font-family:var(--mono)}.pl-words-row td{padding-top:0}.pl-words{padding:var(--s2);background:var(--surface2);border:1px solid var(--line);border-radius:var(--r-ctl);max-height:240px;font:var(--t-note) / 1.5 var(--sans);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;overflow:auto}.edit-section .pltable{margin-top:var(--s1)}.edit .prop[data-key=text] textarea{min-height:180px}@media (pointer:coarse),(width<=600px){.pl-open{min-height:var(--tap);align-content:center}.pl-run{min-height:var(--tap);align-items:center;display:inline-flex}}@media (width<=600px){.pltable,.pltable :is(thead,tbody,th,td){display:block}.pltable thead{display:none}.pltable tbody tr{align-items:center;column-gap:var(--s2);row-gap:var(--s1);border:1px solid var(--line);border-radius:var(--r-pane);margin-bottom:var(--s2);padding:var(--s1) var(--s2);flex-wrap:wrap;display:flex}.pltable td{border:0;padding:0}.pltable td:first-child{flex:1 1 calc(100% - var(--tap) - var(--s2))}.pltable .pl-menu{flex:none;order:1;width:auto}.pltable td:not(:first-child):not(.pl-menu){font-size:var(--t-label);order:2}.pltable td:not(:first-child):not(.pl-menu):before{content:attr(data-label) " ";color:var(--dim)}.pltable td[data-state=none]{display:none}.pltable tr.pl-words-row{margin-top:calc(-1 * var(--s2));border:0;padding:0}.pltable tr.pl-words-row td{flex:100%}}.sp-list{gap:var(--s2);margin:0;padding:0;list-style:none;display:grid}.sp-pick{gap:var(--s1);width:100%;padding:var(--s3);text-align:left;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--r-pane);justify-items:start;font-weight:400;display:grid}.sp-pick:hover,.sp-pick:focus-visible{border-color:var(--amber)}.sp-head{align-items:center;gap:var(--s2);flex-wrap:wrap;display:inline-flex}.sp-title{overflow-wrap:anywhere;font-weight:600}.sp-text{color:var(--dim);font-size:var(--t-label);white-space:pre-line;overflow-wrap:anywhere;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.sp-meta{gap:var(--s3);color:var(--faint);font-size:var(--t-note);font-variant-numeric:tabular-nums;flex-wrap:wrap;display:flex}.sp-pager{justify-content:flex-end;align-items:center;gap:var(--s2);margin-top:var(--s3);display:flex}.sp-page{font-size:var(--t-label);color:var(--dim);font-variant-numeric:tabular-nums}.sources{gap:var(--s3);display:grid}.shead{align-items:center;gap:var(--s2) var(--s3);flex-wrap:wrap;display:flex}.shead-title{font-size:var(--t-title);flex:100%;margin:0;font-weight:600}.suste{margin:0}.sview{border:1px solid var(--line);border-radius:var(--r-ctl);display:inline-flex;overflow:hidden}.sview button{padding:0 var(--s3);min-height:var(--ctl);font:var(--t-label) var(--sans);color:var(--dim);cursor:pointer;background:0 0;border:0}.sview button:hover{color:var(--ink)}.sview button.on{color:var(--on-amber);background:var(--amber)}.scrumb{align-items:center;gap:var(--s2);flex:100%;display:flex}.scrumb .crumb{color:var(--amber);font:var(--t-body) var(--sans);cursor:pointer;min-height:var(--ctl);background:0 0;border:0;padding:0}.crumb-cur{color:var(--dim)}.ssort{align-items:center;gap:var(--s1);display:flex}.ssort select{height:var(--ctl)}.sfilter{align-items:center;gap:var(--s1);color:var(--faint);flex:140px;min-width:0;display:flex}.sfilter input{flex:100%;min-width:0}.sfolders{gap:var(--s2);grid-template-columns:repeat(auto-fill,minmax(140px,1fr));grid-auto-rows:1fr;margin:0;padding:0;list-style:none;display:grid}.sfolder{display:grid;position:relative}.sfolder-open{align-items:flex-start;gap:var(--s1);width:100%;height:100%;padding:var(--s3);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pane);color:var(--ink);cursor:pointer;font:var(--t-body) var(--sans);flex-direction:column;display:flex}.sfolder-open:hover,.sfolder-open:focus-visible{border-color:var(--amber)}.sfolder-open.off{opacity:.45;cursor:not-allowed}.sfolder-open .sfolder-ic{color:var(--amber)}.sfolder-name{text-align:left;word-break:break-word;font-weight:600}.sfolder-meta{color:var(--dim);font-size:var(--t-note)}.squota{align-items:center;display:inline-flex;position:relative}.sfolder-open .squota{width:100%;min-height:14px;margin-top:auto;display:flex}.squota-bar{background:var(--surface2);border-radius:999px;width:100%;height:6px;display:block;overflow:hidden}.squota-fill{background:var(--amber);height:100%;display:block}.squota-none{color:var(--dim);font-size:var(--t-note);line-height:1}.squota-pop{visibility:hidden;right:0;top:calc(100% + var(--s1));z-index:20;padding:var(--s1) var(--s2);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pane);box-shadow:0 8px 24px var(--scrim);font:var(--t-label) var(--sans);color:var(--ink);white-space:nowrap;position:absolute}.squota:hover>.squota-pop,.sfolder-open:focus-visible .squota-pop{visibility:visible}.sfolder-menu{top:var(--s2);right:var(--s2);position:absolute}.slist{border-collapse:collapse;width:100%}.slist th{text-align:left;font-size:var(--t-note);color:var(--dim);padding:var(--s2);border-bottom:1px solid var(--line);white-space:nowrap;font-weight:600}.slist td{padding:var(--s2);border-bottom:1px solid var(--line);font-size:var(--t-body)}.slist tbody tr{cursor:pointer}.slist tbody tr.sel,.slist tbody tr:hover{background:var(--surface2)}.slist tbody tr.sel .sfile-name{color:var(--amber)}.slist .stype{color:var(--dim);font-size:var(--t-note);white-space:nowrap}.slist .sfile-name{white-space:nowrap}.slist .s-actions{text-align:right;white-space:nowrap;width:44px}.slist-folders{border:1px solid var(--line);border-radius:var(--r-pane);background:var(--surface)}.slist-folders th,.slist-folders td{padding:var(--s2) var(--s3)}.slist-folders td.sfile-name{white-space:normal;word-break:break-word}.slist-folders .sfile-name svg{vertical-align:-2px;margin-right:var(--s1);color:var(--amber)}.sfiles{border:1px solid var(--line);border-radius:var(--r-pane);background:var(--surface);min-height:96px;max-height:calc(100vh - 320px);overflow:auto}.sfiles.drag{outline:2px dashed var(--amber);outline-offset:-2px}.stiles{padding:var(--s2);gap:var(--s2);grid-template-columns:repeat(auto-fill,minmax(120px,1fr));margin:0;list-style:none;display:grid}.stile{background:var(--surface2);border:1px solid var(--line);border-radius:var(--r-pane);width:100%;color:var(--ink);cursor:pointer;font:var(--t-body) var(--sans);flex-direction:column;margin:0;padding:0;display:flex;position:relative;overflow:hidden}.stile.sel{border-color:var(--amber);outline:2px solid var(--amber);outline-offset:1px}.stile-img{aspect-ratio:1;object-fit:cover;background:var(--surface2);width:100%;display:block}.stile-type{aspect-ratio:1;width:100%;color:var(--faint);font-size:var(--t-note);justify-content:center;align-items:center;display:flex}.stile-name{padding:var(--s2);font-size:var(--t-note);text-align:left;word-break:break-word}.stile-check{top:var(--s2);right:var(--s2);background:var(--amber);width:20px;height:20px;color:var(--on-amber);border-radius:999px;place-items:center;display:grid;position:absolute}.sselect{align-items:center;gap:var(--s2);padding:var(--s2) var(--s3);background:var(--amber);color:var(--on-amber);border-radius:var(--r-ctl);flex-wrap:wrap;display:flex}.sselect-count{font-weight:600}.sselect .ghost,.sselect .icon-btn{color:var(--on-amber);border-color:var(--on-amber)}.sselect .ghost:hover,.sselect .icon-btn:hover{color:var(--amber);background:var(--on-amber)}.sselect .menu-pop{color:var(--ink)}.supload{gap:var(--s1);display:grid}.sdrop{color:var(--faint);margin:0}.suploads{gap:var(--s1);margin:0;padding:0;list-style:none;display:grid}.suploads li{align-items:center;gap:var(--s2);font-size:var(--t-note);display:flex}.supload-name{word-break:break-word;flex:auto}.suploads .bad{color:var(--rust)}.supload-bar{background:var(--surface2);border-radius:999px;width:72px;height:6px;display:inline-block;position:relative;overflow:hidden}.supload-bar:after{content:"";background:var(--amber);animation:1.2s ease-in-out infinite supload;position:absolute;inset:0}@keyframes supload{0%{transform:translate(-100%)}to{transform:translate(200%)}}.srename{align-items:center;gap:var(--s2);display:flex}.srename input{flex:auto;min-width:0}.sacts{gap:var(--s2);margin-top:var(--s3);justify-content:flex-end;display:flex}.spreview-img{border-radius:var(--r-ctl);max-width:100%;max-height:60vh;margin:0 auto;display:block}@media (pointer:coarse){.sview button{min-height:44px}.sfolder-open{min-height:72px}.stile{min-height:96px}.scrumb .crumb{min-height:44px}.sfiles{max-height:calc(100vh - 300px)}}.sflow{overflow-x:auto}.sflow td{overflow-wrap:anywhere}.sflow-in{color:var(--dim);font-size:var(--t-note);display:block}.lib-sections{gap:var(--s1);margin:calc(-1 * var(--s2)) 0 var(--s4);display:flex}.lib-sections a{align-items:center;gap:var(--s1);min-height:var(--tap,44px);padding:0 var(--s3);color:var(--dim);font-size:var(--t-label);border-radius:var(--r-ctl);border:1px solid #0000;text-decoration:none;display:inline-flex}.lib-sections a.on{color:var(--ink);border-color:var(--line);background:var(--surface2)}@media (width<=600px){.lib-sections{justify-content:space-between;gap:0}.lib-sections a{padding:0 var(--s1);flex:1;justify-content:center}}body:has(main[data-tab=home]){background-image:radial-gradient(var(--dot) 1px, transparent 1.5px);background-size:var(--s4) var(--s4)}.home{--mark:36px;--sub:28px;--rail:2px}.home-line,.home-branch{margin:0;padding:0;list-style:none}.home-line{margin-top:var(--s5);max-width:560px}.home-stop{padding:0 0 var(--s5) calc(var(--mark) + var(--s3));position:relative}.home-stop.branch{padding:0 0 var(--s4) calc(var(--sub) + var(--s3))}.home-mark{left:0;top:calc(var(--ctl) / 2 - var(--mark) / 2);z-index:1;width:var(--mark);height:var(--mark);border:var(--rail) solid var(--line);background:var(--ground);color:var(--dim);border-radius:50%;place-items:center;display:grid;position:absolute}.branch .home-mark{width:var(--sub);height:var(--sub);top:calc(var(--ctl) / 2 - var(--sub) / 2)}.home-stop:after{content:"";left:calc(var(--mark) / 2 - var(--rail) / 2);top:calc(var(--ctl) / 2);bottom:calc(var(--ctl) / -2);width:var(--rail);background:var(--line);position:absolute}.home-stop.branch:after{left:calc(var(--sub) / 2 - var(--rail) / 2)}.home-stop:last-child:after{display:none}.home-branch>.home-stop:first-child:before{content:"";top:calc(var(--ctl) / 2 - var(--rail) / 2);height:var(--rail);left:calc(-1 * (var(--mark) / 2 + var(--s3)));width:calc(var(--mark) / 2 + var(--s3));background:var(--line);position:absolute}.home-branch{margin-top:var(--s2)}.home-fork{padding-bottom:var(--s3)}.hub>.home-name .home-mark{background:var(--amber);border-color:var(--amber);color:var(--ground)}.home-line>.hub:after{background:var(--amber)}.home-line>.hub+.home-stop>.home-name .home-mark{border-color:var(--amber)}.start>.home-name .home-mark{border-color:var(--amber);color:var(--amber)}.home-name{min-height:var(--ctl);font-size:var(--t-title);color:var(--ink);align-items:center;font-weight:600;text-decoration:none;display:inline-flex}.branch>.home-name{font-size:var(--t-heading)}.home-name:hover{text-underline-offset:3px;text-decoration:underline}.home-name:hover .home-mark{color:var(--ink)}.hub>.home-name:hover .home-mark{color:var(--ground)}.home-fact{margin-left:var(--s2);color:var(--dim);font-size:var(--t-label);font-variant-numeric:tabular-nums}.home-start{margin-left:var(--s2);padding:1px var(--s2);border:1px solid var(--amber);color:var(--amber);font-size:var(--t-note);vertical-align:1px;border-radius:999px}.home-items{margin:0;padding:0;list-style:none}.home-items a{align-items:baseline;gap:var(--s2);min-height:var(--ctl);padding-block:calc((var(--ctl) - 1.5em) / 2);color:var(--ink);min-width:0;text-decoration:none;display:flex}.home-items a:hover .home-item{text-underline-offset:3px;text-decoration:underline}.home-item{align-items:baseline;gap:var(--s2);text-overflow:ellipsis;white-space:nowrap;min-width:0;display:inline-flex;overflow:hidden}.home-item code{font-family:var(--mono);font-size:var(--t-label)}.home-sub{color:var(--faint);font-size:var(--t-note);font-variant-numeric:tabular-nums;flex:none}.home-items .home-more{color:var(--dim);font-size:var(--t-label)}.home-version{margin:var(--s4) 0 0;color:var(--faint);font-size:var(--t-caption);font-variant-numeric:tabular-nums}@media (width>=960px){.home-line{gap:0 var(--s4);grid-template-columns:repeat(6,minmax(0,1fr));max-width:none;display:grid}.home-fork{grid-column:span 3;padding-bottom:0}.home-branch{gap:0 var(--s4);margin-top:var(--s3);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.home-stop,.home-stop.branch{padding:calc(var(--mark) + var(--s2)) 0 0}.home-stop.branch{padding-top:calc(var(--sub) + var(--s2))}.home-mark{top:0}.branch .home-mark{top:0;left:calc(var(--mark) / 2 - var(--sub) / 2)}.home-stop:after{top:calc(var(--mark) / 2 - var(--rail) / 2);bottom:auto;left:var(--mark);right:calc(-1 * var(--s4));width:auto;height:var(--rail)}.home-stop.branch:after{top:calc(var(--sub) / 2 - var(--rail) / 2);left:calc(var(--mark) / 2 + var(--sub) / 2)}.home-branch>.home-stop:first-child:before{display:none}.home-fork{padding-top:0}.home-fork>.home-name{z-index:1;min-height:var(--mark);padding:0 var(--s3) 0 calc(var(--mark) + var(--s2));background:var(--ground);position:relative}.home-fork .home-branch{margin-top:var(--s4)}.home-fork:before{content:"";left:calc(var(--mark) / 2 - var(--rail) / 2);width:var(--rail);top:calc(var(--mark) / 2);height:calc(var(--mark) / 2 + var(--s4) + var(--sub) / 2);background:var(--line);position:absolute}.home-fact{margin-left:0;display:block}.home-start{margin:var(--s1) 0 0;display:table}.home-items{margin-top:var(--s2)}.home-items a{padding-block:var(--s1);flex-direction:column;align-items:flex-start;gap:0}.home-item{max-width:100%}.home-version{margin-top:var(--s5)}}.prompt{gap:var(--s1);margin-top:var(--s2);display:grid}.prompt>.prop-name{grid-area:auto}.prompt textarea{field-sizing:content;width:100%;min-height:3lh;max-height:60vh}.rule-tries{margin:var(--s2) 0 0;gap:var(--s1);font-size:var(--t-label);overflow-wrap:anywhere;padding:0;list-style:none;display:grid}.rule-tries .hit{color:var(--sage)}.rule-tries .fault{color:var(--rust)}.runs{gap:var(--s4);grid-template-columns:minmax(0,1fr);display:grid}.jobs>.repeater>.repeater-items{gap:var(--s4)}.add-why{margin-top:var(--s1)}#pipelines select{min-width:min(16rem,100%)}.pick-list{gap:var(--s2);display:grid}.pick-item{text-align:left;justify-content:flex-start;width:100%}.pick-others{gap:var(--s2);margin-top:var(--s4);display:grid}.pick-item:has(.pick-about){height:auto;padding-block:var(--s2);flex-direction:column;align-items:flex-start;gap:2px}.pick-about{font-size:var(--t-note);color:var(--dim);font-weight:400}.single-test{gap:var(--s4);display:grid}.single-list{gap:var(--s1);display:grid}.wants-heading{font-size:var(--t-label);margin:0;font-weight:600}.tests-note{margin-top:var(--s3)}.chip{padding:var(--s1) var(--s2);border:1px solid var(--line);border-radius:var(--r-ctl);color:var(--dim)}.mkey{gap:var(--s1);margin-top:var(--s2);flex-wrap:wrap;display:flex}.chip-key.on{background:var(--surface2)}.mchips{gap:var(--s1);margin-top:var(--s2);flex-wrap:wrap;display:flex}.mchip{min-height:var(--ctl);font-size:var(--t-label)}.mchip.ok{background:var(--sage);color:#fff;border-color:#0000}.mchip.todo{color:var(--rust);border-color:var(--line);background:0 0}.mchip.missing{color:var(--rust);border-color:var(--rust);background:0 0;border-style:dashed}.runbar{z-index:5;background:var(--ground);border-bottom:1px solid var(--line);padding:var(--s2) 0 calc(var(--s2) - 1px);padding-top:calc(var(--s2) + env(safe-area-inset-top,0px));margin-bottom:var(--s4);position:sticky;top:0}.runbar-row{align-items:center;gap:var(--s3);flex-wrap:nowrap;display:flex}.run{padding:0 var(--s5);flex:none}.runbar-line{min-width:0;font-size:var(--t-label);color:var(--dim);flex:auto}.runbar-why{overflow-wrap:anywhere}.runbar-why.bad{color:var(--rust)}.runbar-fix{color:var(--amber);white-space:nowrap}.runbar-open{align-items:baseline;gap:var(--s2);max-width:100%;font-size:var(--t-label);color:var(--dim);text-align:left;background:0 0;border:0;border-radius:0;flex-wrap:wrap;padding:0;font-weight:400;display:inline-flex}.runbar-open:hover .runbar-word,.runbar-open:focus-visible .runbar-word{color:var(--amber)}.runbar-word{color:var(--ink);font-weight:600}.runbar-detail{overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.runbar-stop{flex:none;margin-left:auto}.runbar-meter{background:var(--line);height:2px;position:absolute;bottom:-1px;left:0;right:0}.runbar-fill{background:var(--amber);height:100%}.runs :is(input,select,textarea,button,summary){scroll-margin-top:calc(var(--ctl) + var(--s4))}.version-list{gap:var(--s2);display:grid}.version-row{justify-content:space-between;align-items:center;gap:var(--s2);padding:var(--s2) 0;border-bottom:1px solid var(--line);display:flex}.version-row:last-of-type{border-bottom:0}.version-when{font-size:var(--t-label);color:var(--dim);overflow-wrap:anywhere;min-width:0}.import-missing{gap:var(--s2);margin:var(--s2) 0 0;padding:0;list-style:none;display:grid}.import-missing li{font-size:var(--t-label);color:var(--rust)}.stages{counter-reset:stage;--rail:28px;--rail-dot:24px}.stages>.group.sub{counter-increment:stage;margin-inline-start:0;padding-inline-start:calc(var(--rail) + var(--s3));padding-top:0;padding-bottom:var(--s4);border-top:0;margin-top:0;position:relative}.stages>.group.sub:last-child{padding-bottom:0}.stages>.group.sub:before{content:counter(stage);inset-inline-start:calc((var(--rail) - var(--rail-dot)) / 2);top:calc((var(--ctl) - var(--rail-dot)) / 2);width:var(--rail-dot);height:var(--rail-dot);box-sizing:border-box;border:1.5px solid var(--line);color:var(--dim);background:var(--surface);border-radius:50%;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:flex;position:absolute}.stages>.group.sub:not(:last-child):after{content:"";inset-inline-start:calc(var(--rail) / 2 - 1px);top:calc((var(--ctl) + var(--rail-dot)) / 2 + 4px);background:var(--line);width:2px;position:absolute;bottom:4px}.stages .stage-row:not(:last-child){border-bottom:1px solid var(--line)}.stages .repeater-items:has(>.stage-row){gap:0}.job-reply{margin:calc(-1 * var(--s1)) 0;font-size:var(--t-note);color:var(--faint);justify-content:center;align-items:center;gap:6px;display:flex}.target:not(:last-child){padding-bottom:var(--s2);border-bottom:1px solid var(--line)}.target-head{grid-template-columns:22px minmax(0, 1.1fr) auto minmax(0, 1fr) var(--ctl);gap:var(--s3);align-items:center;min-height:48px;display:grid}.target-badge{box-sizing:border-box;border:1px solid var(--line);background:var(--surface2);border-radius:5px;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;font-weight:700;display:flex}.target-who{flex-direction:column;min-width:0;display:flex}.target-name{font-size:var(--t-label);overflow-wrap:anywhere;margin:0;font-weight:600}.target-profile{font-size:var(--t-note);color:var(--dim)}.target-type{border:1px solid var(--line);border-radius:var(--r-ctl);font-size:var(--t-note);color:var(--dim);white-space:nowrap;justify-self:start;padding:2px 8px}.target-value{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.target-value.idle{color:var(--faint);font-size:var(--t-label)}.target-head .menu{justify-self:end}.target-what{display:contents}@media (width<=600px){.stages{--rail:24px;--rail-dot:22px}.stages>.group.sub{padding-inline-start:calc(var(--rail) + var(--s2))}.target-head{grid-template-columns:22px minmax(0, 1fr) var(--ctl);row-gap:2px;column-gap:var(--s2);padding:var(--s1) 0;grid-template-areas:"badge who menu"".kind kind"}.target-badge{grid-area:badge}.target-who{grid-area:who}.target-head .menu{grid-area:menu}.target-what{align-items:center;gap:var(--s2);grid-area:kind;min-width:0;display:flex}}.history{gap:var(--s3);display:grid}.hstatus{margin:0}.htable{border-collapse:collapse;min-width:100%}.htable th{text-align:left;font-size:var(--t-label);color:var(--dim);padding:var(--s2);border-bottom:1px solid var(--line);white-space:nowrap;font-weight:600}.htable td{padding:var(--s2);border-bottom:1px solid var(--line);vertical-align:top;font-size:var(--t-body)}.htable .runrow td{white-space:nowrap}.htable .scenrows>td{background:var(--surface2)}.htable :is(th,td).hnum,.scen-table :is(th,td).hnum{text-align:right;font-variant-numeric:tabular-nums lining-nums}.runlink{font:var(--t-body) var(--mono);color:var(--amber);cursor:pointer}.linkish{color:var(--amber)}.htable time{white-space:nowrap}.htable .hexpand{width:1px;padding:0 0 0 var(--s1)}.htable .runrow td{vertical-align:middle}.hexpand svg{transition:transform .15s}.runrow.open .hexpand svg{transform:rotate(90deg)}.hvh{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.rchip{padding:1px var(--s2);border:1px solid var(--line);font-size:var(--t-note);color:var(--dim);border-radius:999px;display:inline-block}.rchip.done{color:var(--sage);border-color:var(--sage)}.rchip.queued,.rchip.running{color:var(--amber);border-color:var(--amber)}.rchip.failed,.rchip.incomplete,.rchip.cancelled,.rchip.interrupted{color:var(--rust);border-color:var(--rust)}.hcomment{text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;max-width:240px;display:inline-block;overflow:hidden}.hcomment.empty{color:var(--faint);letter-spacing:.12em}.scen-table{border-collapse:collapse;width:100%}.scen-table th{font-size:var(--t-note);color:var(--dim);text-align:left;padding:var(--s1) var(--s2);border-bottom:1px solid var(--line);white-space:nowrap;font-weight:600}.scen-table td{padding:var(--s1) var(--s2);border-bottom:1px solid var(--line);white-space:nowrap;vertical-align:middle}.older-btn{margin-top:var(--s3)}.hcols{gap:var(--s3);display:grid}.hcols .groups{gap:var(--s1);display:grid}.hcols h3{font-size:var(--t-label);color:var(--dim);margin:0;font-weight:600}.hcols label{align-items:center;gap:var(--s2);min-height:var(--ctl);font-size:var(--t-body);display:flex}.hcols-actions{gap:var(--s2);display:flex}@media (pointer:coarse),(width<=600px){.hcols label{min-height:44px}.hexpand .icon-btn{min-width:44px;min-height:44px}}@media (width<=600px){.htable,.htable :is(thead,tbody,tr,th,td){display:block}.htable thead{display:none}.htable>tbody>tr{border:1px solid var(--line);border-radius:var(--r-pane);margin-bottom:var(--s3);padding:var(--s2) var(--s3)}.htable td{padding:var(--s1) 0;border:0}.htable td[data-label]{gap:var(--s2);white-space:normal;grid-template-columns:7.5rem minmax(0,1fr);align-items:baseline;display:grid}.htable td[data-label]:before{content:attr(data-label);font-size:var(--t-label);color:var(--dim);font-weight:600}.htable .hval{overflow-wrap:anywhere;min-width:0}.htable :is(th,td).hnum,.scen-table :is(th,td).hnum{text-align:left}.htable>tbody>.runrow{position:relative}.htable .runrow>td.hexpand{top:var(--s1);right:var(--s1);width:auto;padding:0;position:absolute}.htable .runrow>td.hexpand+td{padding-right:48px}.htable>tbody>.runrow.open{border-bottom-right-radius:0;border-bottom-left-radius:0;margin-bottom:0}.htable>tbody>.scenrows{background:var(--surface2);border-top:0;border-top-left-radius:0;border-top-right-radius:0}.htable .scenrows>td{background:0 0;padding:0}.scen-table tr+tr{border-top:1px solid var(--line)}.scen-table tr{padding:var(--s1) 0}}.setup{gap:var(--s3);display:grid}.setup-table{border-collapse:collapse;width:100%;margin-top:var(--s3)}.setup-table th{text-align:left;font-size:var(--t-label);color:var(--dim);padding:var(--s2);border-bottom:1px solid var(--line);white-space:nowrap;font-weight:600}.setup-table td{padding:var(--s1) var(--s2);border-bottom:1px solid var(--line);vertical-align:middle}.setup-table tr:last-of-type td{border-bottom:0}.setup-table td[data-label=Address],.setup-table td[data-label=Model]{overflow-wrap:anywhere}.setup-table .setup-menu{text-align:right}.setup-table .menu{margin-left:auto}.setup-row{cursor:pointer}.setup-row:hover{background:var(--surface2)}.setup-open{min-height:var(--ctl);color:var(--ink);font-size:var(--t-body);text-align:left;overflow-wrap:anywhere;background:0 0;border:0;padding:0;font-weight:600}.setup-open:hover,.setup-open:focus-visible{color:var(--amber)}.setup-note{font-size:var(--t-note);display:flex}.setup-table td[data-label=Key]{white-space:nowrap}.setup-unset{color:var(--dim)}@media (width<=600px){.setup-table td[data-label=Key]{white-space:normal}}.results{margin-top:var(--s4)}.results-bar{align-items:center;gap:var(--s2);margin-bottom:var(--s3);display:flex}.rrback{flex:none}.rrcode{display:none}.rtabs{gap:var(--s1);flex-wrap:wrap;display:flex}.rtab{border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--surface);align-items:center;display:flex;overflow:hidden}.rtab.on{border-color:var(--amber)}.rname{color:var(--dim);min-height:var(--ctl);background:0 0;border:0;font-weight:500}.rtab.on .rname{color:var(--ink)}.rx{color:var(--faint);border:0;border-left:1px solid var(--line);min-height:var(--ctl);padding:0 var(--s2);background:0 0}@media (pointer:coarse),(width<=600px){.rname,.rx{min-height:44px}}.runhead{align-items:center;gap:var(--s2);flex-wrap:wrap;display:flex}.run-queue{align-items:baseline;gap:var(--s2);flex-wrap:wrap;flex:1 1 0;min-width:0;margin:0;display:flex}.run-state{color:var(--ink);font-weight:600}.run-item{overflow-wrap:anywhere}.stop-btn{margin-left:auto}.rrbar{align-items:center;gap:var(--s2);margin-top:var(--s2);min-height:24px;display:flex}.rrmeter{background:var(--surface2);border:1px solid var(--line);border-radius:var(--r-ctl);flex:1;height:24px;position:relative;overflow:hidden}.rrbarfill{background:var(--amber);position:absolute;inset:0 auto 0 0}.rrpct{height:100%;font-size:var(--t-note);font-variant-numeric:tabular-nums;color:var(--ink);background:linear-gradient(90deg, var(--on-amber) var(--pct,0%), var(--ink) var(--pct,0%));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;justify-content:center;align-items:center;font-weight:600;display:flex;position:relative}.rrprogress{font-size:var(--t-label);color:var(--dim)}.rrstatus{margin-top:var(--s2)}.runstats{margin-top:var(--s3)}.runstats .fig-value code{font-family:var(--mono);font-size:inherit;color:inherit}.runstats .fig-comment{text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;max-width:16rem;display:inline-block;overflow:hidden}.scrollx{overflow-x:auto}.rrtable{border-collapse:collapse;width:100%}.rrtable th{text-align:left;font-size:var(--t-label);color:var(--dim);padding:var(--s2);border-bottom:1px solid var(--line);white-space:nowrap;font-weight:600}.rrtable td{padding:var(--s2);border-bottom:1px solid var(--line);vertical-align:top}.rrtable tr:is(.scenstats,.reasons) td{background:var(--surface2)}.scenstats-label{font-weight:600;font-size:var(--t-label);color:var(--dim)}.runview{--lead:34%;--lead-first:14%}@media (width>=601px){.rrtable,.ruletable{table-layout:fixed;min-width:calc(14rem + var(--scenarios,1) * 10rem)}.rrtable th.col-item{width:var(--lead)}:is(.rrtable.graded th.col-item,.ruletable th.col-test){width:var(--lead-first)}:is(.rrtable th.col-expected,.ruletable th.col-rule){width:calc(var(--lead) - var(--lead-first))}}.ruletable{border-collapse:collapse;width:100%}.ruletable th{text-align:left;font-size:var(--t-label);color:var(--dim);padding:var(--s2);border-bottom:1px solid var(--line);white-space:nowrap;font-weight:600}.ruletable td{padding:var(--s1) var(--s2);vertical-align:top}.ruletable tr.rule-first td{border-top:1px solid var(--line);padding-top:var(--s2)}.ruletable tbody tr:first-child td{border-top:0}.ruletable tbody tr:last-child td{padding-bottom:var(--s2)}.rule-test-name{font-weight:600}.rule-type{color:var(--dim);font-size:var(--t-label)}.rule-want{max-width:100%;font:var(--t-label) var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;background:var(--surface2);border-radius:4px;padding:0 4px;display:inline-block}.rule-state{font-weight:600;font-size:var(--t-label);white-space:nowrap}.rule-state.met{color:var(--sage)}.rule-state.not{color:var(--rust)}.rule-state:is(.skipped,.pending){color:var(--dim);font-weight:400}.rule-note{font-size:var(--t-note);color:var(--dim);overflow-wrap:anywhere;display:block}@media (width<=600px){.ruletable,.ruletable :is(tbody,tr,td){display:block}.ruletable thead{display:none}.ruletable tbody tr{padding:var(--s1) 0;border-top:1px solid var(--line)}.ruletable tbody tr:first-child,.ruletable tr.rule-first td{border-top:0}.ruletable td{padding:2px 0}.ruletable td.rule-test:empty{display:none}.ruletable td[data-label]:before{content:attr(data-label) " ";font-size:var(--t-note);color:var(--dim);font-weight:600}}@media (width>=601px){.rrtable tr.reasons td{border-top:1px solid var(--line)}}.reasons-none{font-size:var(--t-label);color:var(--sage)}.reasons-list{gap:2px;margin:0;padding:0;list-style:none;display:grid}.reasons-list li{background:linear-gradient(to right, color-mix(in srgb, var(--rust) 16%, transparent) var(--share), transparent var(--share));border-radius:5px}.reason{align-items:baseline;gap:var(--s2);padding:3px var(--s2) 3px var(--s1);font-size:var(--t-label);color:var(--ink);border-radius:5px;grid-template-columns:2.5ch minmax(0,1fr);line-height:1.35;text-decoration:none;display:grid}.reason-n{text-align:right;font-variant-numeric:tabular-nums;color:var(--rust);font-weight:700}.reason-t{-webkit-line-clamp:2;line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.reason-note{color:var(--dim);font-size:var(--t-note)}a.reason:hover .reason-t,a.reason:focus-visible .reason-t{color:var(--amber);text-underline-offset:2px;text-decoration:underline}a.reason:focus-visible{outline:2px solid var(--amber);outline-offset:1px}@media (pointer:coarse),(width<=600px){.reason{min-height:var(--tap);align-items:center}}.rrtable .thumb{background:0 0;border:0;padding:0}.rrtable .thumb img{border-radius:var(--r-ctl);max-width:96px;display:block}.rrtable .meta{font-size:var(--t-note);color:var(--dim);overflow-wrap:anywhere}.rritem{align-items:center;gap:var(--s2);margin-top:var(--s1);display:flex}.rritem .meta{flex:auto;min-width:0;margin-top:0}.rritem .menu{flex:none}.verdict{text-transform:uppercase;font-weight:700;font-size:var(--t-label)}.verdict.pass{color:var(--sage)}.verdict.fail{color:var(--rust)}.verdict.skipped{color:var(--dim)}.test-verdicts{margin:0 0 var(--s1);gap:2px;padding:0;list-style:none;display:grid}.test-verdicts li{gap:var(--s1);align-items:baseline;display:flex}.test-verdicts .test-name{font-size:var(--t-label);color:var(--dim)}.metric-readings{margin:0 0 var(--s1)}.metric-readings>.metric-score{margin-left:var(--s1);font-size:var(--t-label);color:var(--dim)}.metric-readings ul{gap:2px;margin:2px 0 0;padding:0;list-style:none;display:grid}.metric-readings li{font-size:var(--t-label);overflow-wrap:anywhere}.metric-readings li.fail .test-name{color:var(--rust)}.metric-readings .metric-reason{color:var(--dim)}.pct{font-variant-numeric:tabular-nums;margin-left:var(--s2);font-size:var(--t-label)}.reasons{font-size:var(--t-note);margin-top:var(--s1)}.reasons.fault{color:var(--rust)}.reasons.hit{color:var(--sage)}.chips{gap:var(--s1);margin-top:var(--s2);flex-wrap:wrap;display:flex}.term{padding:var(--s1) var(--s2);border:1px solid var(--line);border-radius:var(--r-ctl);font-size:var(--t-note);color:var(--dim)}.term.met{border-color:var(--sage);color:var(--sage)}.term.unmet{border-color:var(--rust);color:var(--rust)}.term.no{text-decoration:line-through}.term.drop{opacity:.5}.wants{align-items:center;gap:var(--s1);margin-top:var(--s2);font-size:var(--t-label);flex-wrap:wrap;display:flex}.wants b{color:var(--dim);font-weight:600}.hit{color:var(--sage)}.fault{color:var(--rust)}.rrtable tr.rrdetail>td{padding-top:0}.rrtable tr.hasdetail>td{border-bottom:0}.rrtable td>pre{white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%}.transcript{margin-top:var(--s2)}.transcript pre{margin:var(--s1) 0;padding:var(--s2);background:var(--surface2);border:1px solid var(--line);border-radius:var(--r-ctl);font:var(--t-note) / 1.4 var(--mono);white-space:pre-wrap;overflow-wrap:anywhere}.dropped summary{cursor:pointer;font-size:var(--t-note);color:var(--dim)}.droppedrow{align-items:center;gap:var(--s2);margin-top:var(--s1);display:flex}.lightbox-img{border-radius:var(--r-ctl);max-width:100%;max-height:60vh;margin:0 auto;display:block}@media (width<=600px){.results{z-index:6;background:var(--ground);padding:var(--s3);margin:0;position:fixed;inset:0;overflow-y:auto}.rtabs{display:none}.rrback{min-width:44px;min-height:44px}.rrcode{padding:0 var(--s2);border:1px solid var(--amber);border-radius:var(--r-ctl);min-height:32px;font:var(--t-body) var(--mono);color:var(--ink);align-items:center;display:inline-flex}.rrtable,.rrtable :is(thead,tbody,tr,th,td){display:block}.rrtable thead tr:first-child{display:none}.rrtable tbody tr{border:1px solid var(--line);border-radius:var(--r-pane);margin-bottom:var(--s3);padding:var(--s2)}.rrtable td{border:0}.rrtable td[data-label]:before{content:attr(data-label);font-size:var(--t-note);color:var(--dim);margin-bottom:var(--s1);font-weight:600;display:block}.rrtable tr:is(.scenstats,.reasons) td.scenstats-blank{display:none}.rrtable tr:is(.scenstats,.reasons) td{border-bottom:1px solid var(--line)}.rrtable tr:is(.scenstats,.reasons) td:last-of-type{border-bottom:0}.rrtable .thumb img{width:100%;max-width:none}.rrtable td[data-label=Expected]{border-top:1px solid var(--line)}.rrtable td:first-child{flex-direction:column;align-items:stretch;display:flex}.rrtable tbody tr.hasdetail{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0;margin-bottom:0}.rrtable tbody tr.rrdetail{border-top:0;border-top-left-radius:0;border-top-right-radius:0}}.app{max-width:1100px;padding:var(--s4);margin:0 auto}.app .note{color:var(--dim);font-size:var(--t-label);margin:0}.app .note a,.group-about a{color:var(--amber)}.app-head{align-items:center;gap:var(--s3);margin-bottom:var(--s3);flex-wrap:wrap;display:flex}.app-head h1{font-size:var(--t-title);flex:auto;margin:0;font-weight:600}.app-tabs{gap:var(--s1);border-bottom:1px solid var(--line);margin-bottom:var(--s4);flex-wrap:wrap;display:flex}.app-tabs a{align-items:center;gap:var(--s1);min-height:var(--tap,44px);padding:0 var(--s3);color:var(--dim);font-size:var(--t-label);white-space:nowrap;border-bottom:2px solid #0000;margin-bottom:-1px;font-weight:500;text-decoration:none;display:inline-flex}.app-tabs a.on{color:var(--ink);border-bottom-color:var(--amber)}.app-tabs .tab-icon{flex:none}.sync{align-items:center;gap:var(--s2);font-size:var(--t-label);flex-wrap:wrap;margin:0;display:flex}.sync.bad{color:var(--rust)}@media (width<=600px){.app-head .sync{flex-basis:100%;order:1}.app-tabs{gap:0}.app-tabs a{padding:var(--s1) 0;min-width:var(--tap,44px);font-size:var(--t-note);flex-direction:column;flex:1;justify-content:center;gap:2px}}
|