@ponchia/ui 0.11.0 → 0.12.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 +47 -0
- package/MIGRATIONS.json +24 -0
- package/README.md +3 -3
- package/behaviors/forms.d.ts +1 -1
- package/behaviors/internal.d.ts +1 -1
- package/css/dataviz.css +117 -64
- package/css/legend.css +1 -2
- package/dist/css/analytical.css +1 -1
- package/dist/css/dataviz.css +1 -1
- package/dist/css/legend.css +1 -1
- package/dist/css/report-kit.css +1 -1
- package/docs/adr/0001-color-system.md +29 -0
- package/docs/architecture.md +1 -1
- package/docs/compositions.md +2 -2
- package/docs/contrast.md +24 -24
- package/docs/frontier-primitives.md +5 -0
- package/docs/mermaid.md +1 -1
- package/docs/migrations/0.11-to-0.12.md +47 -0
- package/docs/package-contract.md +7 -1
- package/docs/renderer.md +100 -0
- package/docs/reporting.md +9 -9
- package/docs/stability.md +3 -2
- package/docs/theming.md +29 -19
- package/docs/usage.md +12 -8
- package/docs/vega.md +24 -23
- package/llms.txt +8 -4
- package/package.json +12 -3
- package/renderer/index.d.ts +203 -0
- package/renderer/index.d.ts.map +1 -0
- package/renderer/index.js +650 -0
- package/tokens/charts.d.ts +16 -10
- package/tokens/charts.js +65 -49
- package/tokens/charts.json +77 -29
- package/tokens/mermaid.js +56 -56
- package/tokens/mermaid.json +56 -56
- package/tokens/vega.d.ts +3 -3
- package/tokens/vega.js +111 -72
- package/tokens/vega.json +198 -126
package/dist/css/report-kit.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer bronto{.ui-report{--report-width: 64rem;--report-padding-block: var(--space-2xl);--report-gap: var(--space-xl);--report-measure: 68ch;color: var(--text-soft);display: grid;font-size: 1.125rem;line-height: 1.65;gap: var(--report-gap);inline-size: min(100%,var(--report-width));margin-inline: auto;padding: var(--report-padding-block) var(--space-md)}.ui-report p,.ui-report__section > :is(ul,ol,blockquote){max-inline-size: var(--report-measure);overflow-wrap: anywhere}.ui-report .ui-prose{font-size: inherit}.ui-report--compact{--report-gap: var(--space-md);--report-padding-block: var(--space-xl)}.ui-report--numbered{counter-reset: report-section}.ui-report > *,.ui-report__cover > *,.ui-report__head > *,.ui-report__toc > *,.ui-report__summary > *,.ui-report__decision > *,.ui-report__finding > *,.ui-report__evidence > *,.ui-report__section > *,.ui-report__figure > *,.ui-claim > *,.ui-evidence-grid > *,.ui-evidence-ledger > *,.ui-compare > *,.ui-compare__col > *{min-inline-size: 0}.ui-report__cover{align-content: end;border-block-end: 1px solid var(--line);display: grid;gap: var(--space-md);min-block-size: min(62vh,34rem);padding-block-end: var(--space-xl)}.ui-report__cover--compact{min-block-size: auto;padding-block: var(--space-xl) var(--space-lg)}.ui-report__head{align-items: end;border-block-end: 1px solid var(--line);display: flex;flex-wrap: wrap;gap: var(--space-md);justify-content: space-between;padding-block-end: var(--space-md)}.ui-report__title{color: var(--text);font-family: var(--sans);font-size: clamp(2rem,4vw,3rem);font-weight: 650;letter-spacing: 0;line-height: 1.15;margin: 0;max-inline-size: var(--report-measure);text-transform: none;text-wrap: balance}.ui-report__subtitle{color: var(--text-dim);font-size: var(--text-lg);line-height: 1.5;margin: 0;max-inline-size: var(--report-measure)}.ui-report__meta{align-items: center;color: var(--text-dim);display: flex;flex-wrap: wrap;font-family: var(--sans);font-size: var(--text-xs);gap: 0.55rem;letter-spacing: 0;list-style: none;margin: 0;padding: 0;text-transform: none}.ui-report__meta > *{align-items: center;display: inline-flex;gap: 0.55rem}.ui-report__meta > :not(:last-child)::after{background: var(--line-strong);border-radius: 50%;block-size: 0.22rem;content: '';inline-size: 0.22rem}.ui-report__toc{border-block: 1px solid var(--line);display: grid;gap: var(--space-xs);padding-block: var(--space-md)}.ui-report__toc > summary{cursor: pointer;font-size: var(--text-sm);font-weight: 600;min-block-size: var(--tap-target);padding-block: var(--space-xs)}details.ui-report__toc:not([open]) > :not(summary){display: none}.ui-report__toc ol,.ui-report__toc ul{display: grid;gap: 0.35rem;margin: 0;padding-inline-start: var(--space-md)}.ui-report__toc a{color: var(--text);text-decoration: underline;text-decoration-color: color-mix(in srgb,var(--accent) 45%,transparent);text-underline-offset: 0.2rem}.ui-report__summary,.ui-report__finding,.ui-report__evidence{background: var(--panel);border: 1px solid var(--line);border-radius: var(--radius-md);display: grid;gap: var(--space-sm);padding: var(--space-md)}.ui-report__summary{border-inline-start: 2px solid var(--accent)}.ui-report__decision{background: var(--panel);border: 0;border-inline-start: 3px solid var(--accent);border-radius: var(--radius-md);display: grid;gap: var(--space-sm);padding: var(--space-md)}.ui-report__decision-kicker{color: var(--accent-text);font-family: var(--sans);font-size: var(--text-2xs);letter-spacing: 0;margin: 0;text-transform: none}.ui-report__decision-title{color: var(--text);font-family: var(--sans);font-size: var(--text-lg);font-weight: var(--display-weight);letter-spacing: 0;line-height: 1.18;margin: 0;text-transform: none;text-wrap: balance}.ui-report__decision-body{color: var(--text-soft);line-height: 1.6;margin: 0;max-inline-size: var(--report-measure)}.ui-report__decision-meta{color: var(--text-dim);display: flex;flex-wrap: wrap;font-family: var(--sans);font-size: var(--text-2xs);gap: 0.45rem 0.75rem;letter-spacing: 0}.ui-report__decision-grid{container: bronto-decision / inline-size;border-block-start: 1px solid var(--line);display: grid;gap: 0}.ui-report__decision-item{align-items: start;border-block-end: 1px solid var(--line);display: grid;gap: var(--space-xs);grid-template-columns: minmax(8rem,14rem) minmax(0,1fr);padding-block: var(--space-xs)}.ui-report__decision-label,.ui-report__decision-value{margin: 0}.ui-report__decision-label{color: var(--text-dim);font-family: var(--sans);font-size: var(--text-2xs);letter-spacing: 0;text-transform: none}.ui-report__decision-value{overflow-wrap: anywhere;color: var(--text-soft);line-height: 1.5}.ui-report__finding{--report-finding-tone: var(--line-strong);border-inline-start: 2px solid var(--report-finding-tone)}.ui-report__finding--critical{--report-finding-tone: var(--danger)}.ui-report__finding--major{--report-finding-tone: var(--warning)}.ui-report__finding--minor{--report-finding-tone: var(--info)}.ui-report__finding--resolved{--report-finding-tone: var(--success)}.ui-report__finding-title,.ui-report__finding-claim,.ui-report__finding-impact,.ui-report__finding-remediation,.ui-report__finding-evidence,.ui-report__finding-caveat{margin: 0}.ui-report__finding-title{color: var(--text);font-size: var(--text-base);font-weight: 650;line-height: 1.25}.ui-report__finding-claim{color: var(--text);line-height: 1.6}.ui-report__finding-impact,.ui-report__finding-remediation,.ui-report__finding-evidence{color: var(--text-soft);line-height: 1.55}.ui-report__finding-caveat{color: var(--text-dim);font-size: var(--text-sm);line-height: 1.55}.ui-claim{--claim-tone: var(--accent);background: var(--panel-soft);border: 1px solid var(--line);border-inline-start: 2px solid var(--claim-tone);border-radius: var(--radius-md);display: grid;gap: var(--space-xs);padding: var(--space-sm)}.ui-claim--supported{--claim-tone: var(--success)}.ui-claim--partial{--claim-tone: var(--warning)}.ui-claim--disputed,.ui-claim--unsupported{--claim-tone: var(--danger)}.ui-claim--unknown{--claim-tone: var(--info)}.ui-claim__statement,.ui-claim__status,.ui-claim__scope,.ui-claim__basis,.ui-claim__limits,.ui-claim__refs,.ui-claim__caveat{margin: 0}.ui-claim__statement{color: var(--text);font-weight: 650;line-height: 1.45}.ui-claim__status,.ui-claim__scope,.ui-claim__refs{color: var(--text-dim);font-family: var(--sans);font-size: var(--text-2xs);letter-spacing: 0;text-transform: none}.ui-claim__basis,.ui-claim__limits,.ui-claim__caveat{color: var(--text-soft);font-size: var(--text-sm);line-height: 1.55}.ui-report__evidence{background: var(--panel-soft)}.ui-report__evidence:has(> .ui-table-wrap:only-child){padding: 0}.ui-report__evidence:has(> .ui-table-wrap:only-child) > .ui-table-wrap{border: 0;border-radius: var(--radius-md)}.ui-report__section{display: grid;gap: var(--space-md);scroll-margin-block-start: 6rem}.ui-report__section + .ui-report__section{border-block-start: 1px solid var(--line);padding-block-start: var(--space-xl)}.ui-report__section-head{color: var(--text);font-family: var(--sans);font-size: var(--text-xl);font-weight: 650;letter-spacing: 0;line-height: 1.1;margin: 0;text-transform: none;text-wrap: balance}.ui-report--numbered .ui-report__section-head::before{color: var(--accent-text);content: counter(report-section,decimal-leading-zero) ' / ';counter-increment: report-section}.ui-report--numbered .ui-report__section--unnumbered > .ui-report__section-head::before{content: none;counter-increment: none}.ui-report__figure{display: grid;gap: var(--space-sm);margin: 0}.ui-report__caption{color: var(--text-dim);font-family: var(--sans);font-size: var(--text-2xs);letter-spacing: 0;line-height: 1.5;text-transform: none}.ui-evidence-grid{display: grid;gap: var(--space-sm);grid-template-columns: repeat(auto-fit,minmax(min(100%,16rem),1fr))}.ui-evidence-item{background: var(--panel-soft);border: 1px solid var(--line);border-radius: var(--radius-md);display: grid;gap: 0.35rem;padding: var(--space-sm)}.ui-evidence-item__title{color: var(--text);font-size: var(--text-sm);font-weight: 600;margin: 0}.ui-evidence-item__meta{color: var(--text-dim);font-family: var(--sans);font-size: var(--text-2xs);letter-spacing: 0}.ui-evidence-item__body{color: var(--text-soft);font-size: var(--text-sm);line-height: 1.55;margin: 0}.ui-evidence-item__kind,.ui-evidence-item__method,.ui-evidence-item__window,.ui-evidence-item__value,.ui-evidence-item__source,.ui-evidence-item__caveat{margin: 0}.ui-evidence-item__kind,.ui-evidence-item__method,.ui-evidence-item__window,.ui-evidence-item__source{color: var(--text-dim);font-family: var(--sans);font-size: var(--text-2xs);letter-spacing: 0;text-transform: none}.ui-evidence-item__value{color: var(--text);font-size: var(--text-base);font-weight: 650}.ui-evidence-item__caveat{color: var(--text-dim);font-size: var(--text-sm);line-height: 1.5}.ui-evidence-ledger{display: grid;gap: var(--space-sm)}.ui-report__actions{container: bronto-actions / inline-size;border-block-start: 1px solid var(--line);display: grid;gap: 0}.ui-report__action{align-items: start;border-block-end: 1px solid var(--line);display: grid;gap: var(--space-xs);grid-template-columns: minmax(0,1fr) auto;padding-block: var(--space-sm)}.ui-report__action > :not(.ui-report__action-status){grid-column: 1}.ui-report__action-status{color: var(--text-dim);font-family: var(--sans);font-size: var(--text-2xs);grid-column: 2;grid-row: 1;letter-spacing: 0;place-self: start end;text-transform: none;overflow-wrap: anywhere;white-space: normal}.ui-report__action-title,.ui-report__action-owner,.ui-report__action-due,.ui-report__action-priority,.ui-report__action-criteria,.ui-report__action-source{margin: 0}.ui-report__action-title{color: var(--text);font-weight: 650;line-height: 1.45}.ui-report__action-owner,.ui-report__action-due,.ui-report__action-priority,.ui-report__action-source{color: var(--text-dim);font-family: var(--sans);font-size: var(--text-2xs);letter-spacing: 0;text-transform: none}.ui-report__action-criteria{color: var(--text-soft);font-size: var(--text-sm);line-height: 1.5}@container bronto-decision (max-width: 32rem){.ui-report__decision-item{grid-template-columns: minmax(0,1fr)}}@container bronto-actions (max-width: 32rem){.ui-report__action{grid-template-columns: 1fr}.ui-report__action-status{grid-column: 1;grid-row: auto;place-self: auto start}}.ui-report__sources,.ui-report__appendix,.ui-report__footnotes{border-block-start: 1px solid var(--line);color: var(--text-dim);display: grid;font-size: var(--text-sm);gap: var(--space-sm);padding-block-start: var(--space-md)}.ui-compare{display: grid;gap: var(--space-md);grid-template-columns: repeat(auto-fit,minmax(min(100%,16rem),1fr))}.ui-compare--2up{grid-template-columns: repeat( auto-fit,minmax(min(100%,max(16rem,(100% - var(--space-md)) / 2)),1fr) )}.ui-compare__col{align-content: start;display: grid;gap: var(--space-sm)}.ui-compare__head{color: var(--text-dim);font-family: var(--sans);font-size: var(--text-2xs);letter-spacing: 0;text-transform: none}.ui-print-only{display: none !important}.ui-print-exact{-webkit-print-color-adjust: exact;print-color-adjust: exact}@media print{@page{margin: 18mm}.ui-report{--report-padding-block: 0;color-scheme: light;--text: #111;--text-soft: #2a2a2a;--text-dim: #555;--panel: #fff;--panel-soft: #f7f7f7;--line: #d9d9d9;--line-strong: #b3b3b3;inline-size: auto;font-size: 11pt;padding: 0}.ui-report__decision-grid,.ui-report__actions{container-type: normal}.ui-report__cover{min-block-size: auto}.ui-report,.ui-report__section,.ui-report__figure,.ui-report__actions,.ui-evidence-ledger{display: block}.ui-report > * + *{margin-block-start: var(--report-gap)}.ui-report__section > * + *{margin-block-start: var(--space-md)}.ui-report__figure > * + *,.ui-evidence-ledger > * + *{margin-block-start: var(--space-sm)}.ui-report__cover,.ui-report__head,.ui-report__decision,.ui-report__summary,.ui-report__finding,.ui-report__evidence,.ui-report__figure,.ui-report__toc,.ui-claim,.ui-evidence-item,.ui-report__action,.ui-stat,.ui-statgrid > *,tr{break-inside: avoid}.ui-report__section-head{break-after: avoid}.ui-print-only{display: var(--print-display,block) !important}.ui-screen-only{display: none !important}.ui-break-before{break-before: page}.ui-break-after{break-after: page}.ui-keep{break-inside: avoid}}:root{--chart-1: var(--accent);--chart-2: #e69f00;--chart-3: #56b4e9;--chart-4: #009e73;--chart-5: #f0e442;--chart-6: #0072b2;--chart-7: #cc79a7;--chart-8: #4d5358;--chart-seq-1: oklch(94% 0.03 25deg);--chart-seq-2: oklch(85% 0.07 25deg);--chart-seq-3: oklch(74% 0.12 25deg);--chart-seq-4: oklch(62% 0.16 25deg);--chart-seq-5: oklch(50% 0.16 25deg);--chart-seq-6: oklch(38% 0.13 25deg);--chart-div-1: oklch(45% 0.14 255deg);--chart-div-2: oklch(62% 0.1 250deg);--chart-div-3: oklch(82% 0.05 245deg);--chart-div-4: oklch(90% 0.01 250deg);--chart-div-5: oklch(80% 0.07 60deg);--chart-div-6: oklch(66% 0.13 55deg);--chart-div-7: oklch(56% 0.15 45deg);--chart-pattern-size: 8px;--chart-pattern-ink: rgb(0 0 0 / 0.34);--chart-pattern-1: none;--chart-pattern-2: radial-gradient(circle at 50% 50%,var(--chart-pattern-ink) 1.4px,transparent 1.6px);--chart-pattern-3: radial-gradient(circle at 0 0,var(--chart-pattern-ink) 1.4px,transparent 1.6px);--chart-pattern-4: radial-gradient(circle at 25% 25%,var(--chart-pattern-ink) 1.2px,transparent 1.4px),radial-gradient(circle at 75% 75%,var(--chart-pattern-ink) 1.2px,transparent 1.4px);--chart-pattern-5: radial-gradient(circle at 50% 25%,var(--chart-pattern-ink) 1.2px,transparent 1.4px),radial-gradient(circle at 50% 75%,var(--chart-pattern-ink) 1.2px,transparent 1.4px);--chart-pattern-6: radial-gradient(circle at 25% 50%,var(--chart-pattern-ink) 1.2px,transparent 1.4px),radial-gradient(circle at 75% 50%,var(--chart-pattern-ink) 1.2px,transparent 1.4px);--chart-pattern-7: radial-gradient(circle at 25% 25%,var(--chart-pattern-ink) 1px,transparent 1.2px),radial-gradient(circle at 75% 25%,var(--chart-pattern-ink) 1px,transparent 1.2px),radial-gradient(circle at 25% 75%,var(--chart-pattern-ink) 1px,transparent 1.2px),radial-gradient(circle at 75% 75%,var(--chart-pattern-ink) 1px,transparent 1.2px);--chart-pattern-8: radial-gradient(circle at 50% 50%,transparent 1.2px,var(--chart-pattern-ink) 1.4px,transparent 2.2px)}@media (prefers-color-scheme: dark){:root:not([data-theme='light']){--chart-1: var(--accent);--chart-2: #e69f00;--chart-3: #56b4e9;--chart-4: #009e73;--chart-5: #f0e442;--chart-6: #0072b2;--chart-7: #cc79a7;--chart-8: #4d5358;--chart-seq-1: oklch(30% 0.1 25deg);--chart-seq-2: oklch(42% 0.15 25deg);--chart-seq-3: oklch(55% 0.17 25deg);--chart-seq-4: oklch(68% 0.15 25deg);--chart-seq-5: oklch(80% 0.1 25deg);--chart-seq-6: oklch(90% 0.05 25deg);--chart-div-1: oklch(70% 0.13 250deg);--chart-div-2: oklch(60% 0.12 252deg);--chart-div-3: oklch(48% 0.08 255deg);--chart-div-4: oklch(40% 0.01 250deg);--chart-div-5: oklch(58% 0.1 60deg);--chart-div-6: oklch(72% 0.13 58deg);--chart-div-7: oklch(80% 0.12 55deg);--chart-pattern-ink: rgb(255 255 255 / 0.42)}}:root[data-theme='dark']{--chart-1: var(--accent);--chart-2: #e69f00;--chart-3: #56b4e9;--chart-4: #009e73;--chart-5: #f0e442;--chart-6: #0072b2;--chart-7: #cc79a7;--chart-8: #4d5358;--chart-seq-1: oklch(30% 0.1 25deg);--chart-seq-2: oklch(42% 0.15 25deg);--chart-seq-3: oklch(55% 0.17 25deg);--chart-seq-4: oklch(68% 0.15 25deg);--chart-seq-5: oklch(80% 0.1 25deg);--chart-seq-6: oklch(90% 0.05 25deg);--chart-div-1: oklch(70% 0.13 250deg);--chart-div-2: oklch(60% 0.12 252deg);--chart-div-3: oklch(48% 0.08 255deg);--chart-div-4: oklch(40% 0.01 250deg);--chart-div-5: oklch(58% 0.1 60deg);--chart-div-6: oklch(72% 0.13 58deg);--chart-div-7: oklch(80% 0.12 55deg);--chart-pattern-ink: rgb(255 255 255 / 0.42)}@media print{:root:not([data-theme='light']){--chart-1: var(--accent);--chart-2: #e69f00;--chart-3: #56b4e9;--chart-4: #009e73;--chart-5: #f0e442;--chart-6: #0072b2;--chart-7: #cc79a7;--chart-8: #4d5358;--chart-seq-1: oklch(94% 0.03 25deg);--chart-seq-2: oklch(85% 0.07 25deg);--chart-seq-3: oklch(74% 0.12 25deg);--chart-seq-4: oklch(62% 0.16 25deg);--chart-seq-5: oklch(50% 0.16 25deg);--chart-seq-6: oklch(38% 0.13 25deg);--chart-div-1: oklch(45% 0.14 255deg);--chart-div-2: oklch(62% 0.1 250deg);--chart-div-3: oklch(82% 0.05 245deg);--chart-div-4: oklch(90% 0.01 250deg);--chart-div-5: oklch(80% 0.07 60deg);--chart-div-6: oklch(66% 0.13 55deg);--chart-div-7: oklch(56% 0.15 45deg);--chart-pattern-ink: rgb(0 0 0 / 0.34)}}.ui-figure{container: bronto-figure / inline-size;display: grid;gap: var(--space-sm);margin: 0;min-inline-size: 0}.ui-figure > *,.ui-figure__body > *,.ui-figure__stage > *{min-inline-size: 0}.ui-figure__caption{color: var(--text-dim);font-family: var(--sans);font-size: var(--text-sm);letter-spacing: 0;line-height: 1.5;text-transform: none}.ui-figure__body{align-items: start;display: grid;gap: var(--space-sm)}.ui-figure__body--key-right{grid-template-columns: minmax(0,1fr) minmax(min(100%,10rem),var(--figure-key-width,14rem))}.ui-figure__stage{--figure-max-inline: 42rem;--figure-min-block: 0px;display: grid;inline-size: min(100%,var(--figure-max-inline));margin-inline: auto;min-block-size: var(--figure-min-block);place-items: center;position: relative}.ui-figure__media{display: block;inline-size: 100%;max-inline-size: 100%}.ui-figure__stage > :is(canvas,img,picture,svg):not(.ui-figure__overlay){display: block;max-inline-size: 100%}.ui-figure__overlay{block-size: 100%;inline-size: 100%;inset: 0;overflow: visible;pointer-events: none;position: absolute}.ui-figure__key,.ui-figure__data{display: grid;gap: var(--space-xs)}.ui-figure__data{margin-block-start: var(--space-xs)}@container bronto-figure (max-width: 44rem){.ui-figure__body--key-right{grid-template-columns: 1fr}}@media print{.ui-figure{container-type: normal;break-inside: avoid}.ui-figure__body{display: block}.ui-figure__body > * + *{margin-block-start: var(--space-sm)}}.ui-annotation{--annotation-color: var(--accent);--annotation-line: var(--line-strong);--annotation-note-bg: var(--panel);--annotation-subject-fill: color-mix(in srgb,var(--annotation-color) 8%,transparent);--annotation-stroke-width: 1.5;color: var(--annotation-color);font-family: var(--sans);font-size: var(--text-xs);overflow: visible}.ui-annotation--muted{--annotation-color: var(--text-dim);--annotation-line: var(--line)}.ui-annotation--accent{--annotation-color: var(--accent);--annotation-line: var(--line-strong)}.ui-annotation--success{--annotation-color: var(--success)}.ui-annotation--warning{--annotation-color: var(--warning)}.ui-annotation--danger{--annotation-color: var(--danger)}.ui-annotation--info{--annotation-color: var(--info)}.ui-annotation__subject,.ui-annotation__connector,.ui-annotation__connector-end,.ui-annotation__note-line,.ui-annotation__badge{vector-effect: non-scaling-stroke}.ui-annotation__subject{fill: var(--annotation-subject-fill);stroke: var(--annotation-color);stroke-linejoin: miter;stroke-width: var(--annotation-stroke-width)}.ui-annotation__connector,.ui-annotation__note-line{fill: none;stroke: var(--annotation-line);stroke-linecap: square;stroke-linejoin: miter;stroke-opacity: 0.86;stroke-width: var(--annotation-stroke-width)}.ui-annotation__connector-end{fill: var(--annotation-line);stroke: none}.ui-annotation__note{color: var(--text-soft);fill: currentColor}.ui-annotation__note > rect{fill: var(--annotation-note-bg);stroke: var(--line);stroke-width: 1;vector-effect: non-scaling-stroke}.ui-annotation__title{fill: var(--text);font-size: var(--text-xs);font-weight: 700;letter-spacing: 0;paint-order: stroke fill;stroke: var(--annotation-note-bg);stroke-linejoin: round;stroke-width: 3;text-transform: none}.ui-annotation__label{fill: var(--text-soft);font-size: var(--text-xs);letter-spacing: 0;paint-order: stroke fill;stroke: var(--annotation-note-bg);stroke-linejoin: round;stroke-width: 3}.ui-annotation__badge{fill: var(--annotation-note-bg);stroke: var(--annotation-color);stroke-width: var(--annotation-stroke-width)}.ui-annotation--label .ui-annotation__subject,.ui-annotation--badge .ui-annotation__connector,.ui-annotation--badge .ui-annotation__note-line{display: none}.ui-annotation--callout .ui-annotation__note-line,.ui-annotation--elbow .ui-annotation__note-line,.ui-annotation--curve .ui-annotation__note-line{stroke: var(--annotation-color)}.ui-annotation--elbow .ui-annotation__connector{stroke-linejoin: bevel}.ui-annotation--curve .ui-annotation__connector{stroke-linecap: round}.ui-annotation--circle .ui-annotation__subject{stroke-dasharray: 0.01 4;stroke-linecap: round}.ui-annotation--rect .ui-annotation__subject{stroke-dasharray: 5 3}.ui-annotation--threshold .ui-annotation__subject{fill: none;stroke: var(--annotation-color);stroke-dasharray: 6 4}.ui-annotation--badge .ui-annotation__subject{fill: var(--annotation-color)}.ui-annotation--badge .ui-annotation__badge{fill: var(--annotation-color)}.ui-annotation--badge .ui-annotation__title,.ui-annotation--badge .ui-annotation__label{fill: var(--button-text);stroke: none}.ui-annotation--bracket .ui-annotation__subject,.ui-annotation--compare .ui-annotation__subject,.ui-annotation--axis .ui-annotation__subject,.ui-annotation--timeline .ui-annotation__subject{fill: none;stroke: var(--annotation-color);stroke-linecap: square}.ui-annotation--band .ui-annotation__subject{fill: var(--annotation-subject-fill);stroke: var(--annotation-color);stroke-dasharray: 5 3}.ui-annotation--slope .ui-annotation__subject{fill: none;stroke: var(--annotation-color);stroke-linecap: round}.ui-annotation--cluster .ui-annotation__subject{fill: var(--annotation-subject-fill);stroke: var(--annotation-color);stroke-dasharray: 0.01 5;stroke-linecap: round}.ui-annotation--evidence .ui-annotation__badge{fill: var(--annotation-note-bg);stroke: var(--annotation-color)}.ui-annotation--evidence .ui-annotation__title{fill: var(--annotation-color);stroke: none}.ui-annotation--focus{--annotation-stroke-width: 2;--annotation-subject-fill: color-mix(in srgb,var(--annotation-color) 14%,transparent)}@media (prefers-reduced-motion: no-preference){.ui-annotation--draw .ui-annotation__connector,.ui-annotation--draw .ui-annotation__note-line{animation: uiAnnotationDraw var(--duration-slow,600ms) var(--ease-out,ease-out) both;animation-delay: var(--annotation-delay,0ms);stroke-dasharray: var(--annotation-dash,360);stroke-dashoffset: var(--annotation-dash,360)}.ui-annotation--draw .ui-annotation__subject,.ui-annotation--draw .ui-annotation__badge{animation: uiAnnotationSubjectReveal var(--duration-slow,600ms) var(--ease-out,ease-out) both;animation-delay: var(--annotation-delay,0ms)}.ui-annotation--reveal .ui-annotation__note{animation: uiAnnotationReveal var(--duration-slow,600ms) var(--ease-out,ease-out) both;animation-delay: var(--annotation-delay,0ms)}.ui-annotation--pulse .ui-annotation__subject,.ui-annotation--pulse .ui-annotation__badge{animation: uiAnnotationPulse 1.6s var(--ease-out,ease-out) infinite;animation-delay: var(--annotation-delay,0ms);transform-box: fill-box;transform-origin: center}}@keyframes uiAnnotationDraw{to{stroke-dashoffset: 0}}@keyframes uiAnnotationSubjectReveal{from{opacity: 0}to{opacity: 1}}@keyframes uiAnnotationReveal{from{opacity: 0}to{opacity: 1}}@keyframes uiAnnotationPulse{50%{opacity: 0.62;transform: scale(1.06)}}@media print{.ui-annotation__subject,.ui-annotation__connector,.ui-annotation__note,.ui-annotation__note-line,.ui-annotation__badge{animation: none !important;opacity: 1;stroke-dashoffset: 0}.ui-annotation__subject,.ui-annotation__connector,.ui-annotation__note-line,.ui-annotation__badge{transform: none}.ui-annotation--draw .ui-annotation__connector,.ui-annotation--draw .ui-annotation__note-line{stroke-dasharray: none;stroke-dashoffset: 0}}@media (forced-colors: active){.ui-annotation{--annotation-color: CanvasText;--annotation-line: CanvasText;--annotation-note-bg: Canvas;--annotation-subject-fill: Canvas}}.ui-legend{color: var(--text-soft);display: flex;flex-wrap: wrap;font-family: var(--sans);font-size: var(--text-xs);gap: var(--space-2xs) var(--space-md);list-style: none;margin: 0;padding: 0}.ui-legend--vertical{flex-direction: column}.ui-legend--compact{font-size: var(--text-2xs);gap: var(--space-2xs) var(--space-sm)}.ui-legend__title{color: var(--text-dim);font-size: var(--text-xs);letter-spacing: 0;margin: 0;text-transform: none}.ui-legend__item{min-inline-size: 0;max-inline-size: 100%;align-items: center;color: inherit;display: inline-flex;gap: 0.45rem}.ui-legend__label{min-inline-size: 0;overflow-wrap: anywhere;color: inherit}.ui-legend__value{color: var(--text-dim);font-variant-numeric: tabular-nums;margin-inline-start: auto}.ui-legend__caption{color: var(--text-dim);font-size: var(--text-xs);letter-spacing: 0;text-transform: none}.ui-legend__swatch{background: var(--chart-color,var(--chart-1,var(--accent)));background-image: var(--chart-pattern,none);background-size: var(--chart-pattern-size,8px);block-size: 0.8rem;border: 1px solid var(--line-strong);flex: 0 0 auto;inline-size: 0.8rem}.ui-legend__swatch--circle{border-radius: 50%}.ui-legend__swatch--line{block-size: 0.2rem;border: 0;inline-size: 1.1rem}.ui-legend__symbol{block-size: 0.95rem;color: var(--chart-color,var(--chart-1,var(--accent)));flex: 0 0 auto;inline-size: 0.95rem}.ui-legend__swatch--1{--chart-color: var(--chart-1,var(--accent))}.ui-legend__swatch--2{--chart-color: var(--chart-2,var(--accent))}.ui-legend__swatch--3{--chart-color: var(--chart-3,var(--accent))}.ui-legend__swatch--4{--chart-color: var(--chart-4,var(--accent))}.ui-legend__swatch--5{--chart-color: var(--chart-5,var(--accent))}.ui-legend__swatch--6{--chart-color: var(--chart-6,var(--accent))}.ui-legend__swatch--7{--chart-color: var(--chart-7,var(--accent))}.ui-legend__swatch--8{--chart-color: var(--chart-8,var(--accent))}.ui-legend--gradient{display: grid;gap: var(--space-2xs)}.ui-legend__track{background: linear-gradient( 90deg in oklch,var(--chart-seq-1),var(--chart-seq-2),var(--chart-seq-3),var(--chart-seq-4),var(--chart-seq-5),var(--chart-seq-6) );block-size: 0.7rem;border: 1px solid var(--line)}.ui-legend--diverging .ui-legend__track{background: linear-gradient( 90deg in oklch,var(--chart-div-1),var(--chart-div-2),var(--chart-div-3),var(--chart-div-4),var(--chart-div-5),var(--chart-div-6),var(--chart-div-7) )}.ui-legend__ticks{color: var(--text-dim);display: flex;font-size: var(--text-2xs);justify-content: space-between}.ui-legend__tick{font-variant-numeric: tabular-nums}.ui-legend--threshold{align-items: center;display: grid;gap: 0.35rem var(--space-sm);grid-template-columns: auto 1fr}.ui-legend--with-values{display: grid;gap: 0.35rem var(--space-md);grid-template-columns: auto 1fr auto}.ui-legend--with-values .ui-legend__item{min-inline-size: 0;max-inline-size: 100%;display: grid;grid-column: 1 / -1;grid-template-columns: subgrid}.ui-legend--with-values .ui-legend__value{margin-inline-start: 0;text-align: end}.ui-legend--interactive .ui-legend__item:is(button,[role='button']){background: none;border: 0;border-radius: var(--radius-sm);color: inherit;cursor: pointer;font: inherit;padding-block: 0.15rem;padding-inline: 0.3rem;text-align: start}.ui-legend--interactive .ui-legend__item:is(button,[role='button']):focus-visible{outline: 2px solid var(--accent);outline-offset: 2px}.ui-legend__item.is-inactive,.ui-legend__item[aria-pressed='false']{opacity: 0.45}.ui-legend__item.is-inactive .ui-legend__label,.ui-legend__item[aria-pressed='false'] .ui-legend__label{min-inline-size: 0;overflow-wrap: anywhere;text-decoration: line-through}@media (forced-colors: active){.ui-legend__swatch{border: 1px solid CanvasText;forced-color-adjust: none}.ui-legend__track{forced-color-adjust: none}.ui-legend__item.is-inactive,.ui-legend__item[aria-pressed='false']{opacity: 1}}@media print{.ui-legend__swatch,.ui-legend__track{-webkit-print-color-adjust: exact;print-color-adjust: exact}}.ui-mark{background-color: transparent;background-image: linear-gradient( 90deg,color-mix(in srgb,var(--mark-color,var(--line-strong)) 30%,transparent),color-mix(in srgb,var(--mark-color,var(--line-strong)) 30%,transparent) );background-repeat: no-repeat;background-size: 100% 100%;border-radius: 0.12em;-webkit-box-decoration-break: clone;box-decoration-break: clone;color: inherit;padding-block: 0.05em;padding-inline: 0.18em}.ui-mark--accent{--mark-color: var(--accent)}.ui-mark--success{--mark-color: var(--success)}.ui-mark--warning{--mark-color: var(--warning)}.ui-mark--danger{--mark-color: var(--danger)}.ui-mark--info{--mark-color: var(--info)}.ui-mark--muted{--mark-color: var(--text-dim)}.ui-mark--underline{background: none;padding: 0;text-decoration-color: var(--mark-color,var(--text-dim));text-decoration-line: underline;text-decoration-thickness: 0.12em;text-underline-offset: 0.18em}.ui-mark--box{background: none;border: 1px solid var(--mark-color,var(--line-strong));border-radius: var(--radius-sm)}.ui-mark--strike{background: none;padding: 0;text-decoration-color: var(--mark-color,var(--text-dim));text-decoration-line: line-through}@media (prefers-reduced-motion: no-preference){.ui-mark--draw:not(.ui-mark--underline,.ui-mark--box,.ui-mark--strike){animation: ui-mark-draw 0.6s var(--ease,ease) both}}@keyframes ui-mark-draw{from{background-size: 0% 100%}to{background-size: 100% 100%}}.ui-bracket-note{--mark-color: var(--line-strong);border-inline-start: 2px solid var(--mark-color);display: block;padding-inline-start: var(--space-md)}.ui-bracket-note__label{color: var(--mark-color);display: block;font-family: var(--mono);font-size: var(--text-2xs);letter-spacing: 0;margin-block-end: var(--space-2xs);text-transform: uppercase}.ui-bracket-note--accent{--mark-color: var(--accent)}.ui-bracket-note--success{--mark-color: var(--success)}.ui-bracket-note--warning{--mark-color: var(--warning)}.ui-bracket-note--danger{--mark-color: var(--danger)}.ui-bracket-note--info{--mark-color: var(--info)}@media (forced-colors: active){.ui-mark:not(.ui-mark--underline,.ui-mark--box,.ui-mark--strike){text-decoration-line: underline}}@media print{.ui-mark{-webkit-print-color-adjust: exact;background-size: 100% 100%;print-color-adjust: exact}.ui-mark--draw{animation: none}}.ui-connector{--connector-color: var(--line-strong);color: var(--connector-color);inset: 0;overflow: visible;pointer-events: none;position: absolute}.ui-connector__path{fill: none;stroke: var(--connector-color);stroke-linecap: round;stroke-linejoin: round;stroke-width: var(--connector-width,1.5);vector-effect: non-scaling-stroke}.ui-connector__end{fill: var(--connector-color);stroke: none}.ui-connector--dashed .ui-connector__path{stroke-dasharray: 4 3}.ui-connector--accent{--connector-color: var(--accent)}.ui-connector--muted{--connector-color: var(--line)}.ui-connector--success{--connector-color: var(--success)}.ui-connector--warning{--connector-color: var(--warning)}.ui-connector--danger{--connector-color: var(--danger)}.ui-connector--info{--connector-color: var(--info)}@media (prefers-reduced-motion: no-preference){.ui-connector--draw .ui-connector__path{animation: ui-connector-draw 0.6s ease both;stroke-dasharray: 1}}@keyframes ui-connector-draw{from{stroke-dashoffset: 1}to{stroke-dashoffset: 0}}@media (forced-colors: active){.ui-connector__path{stroke: CanvasText}.ui-connector__end{fill: CanvasText}}@media print{.ui-connector__path,.ui-connector__end{-webkit-print-color-adjust: exact;print-color-adjust: exact}.ui-connector--draw .ui-connector__path{animation: none;stroke-dasharray: none;stroke-dashoffset: 0}}.ui-spotlight{--spot-x: 50%;--spot-y: 50%;--spot-w: 0px;--spot-h: 0px;--spot-pad: 8px;--spot-radius: var(--radius-md);--spot-backdrop: color-mix(in srgb,#000 55%,transparent);inset: 0;pointer-events: none;position: fixed;z-index: var(--z-overlay,1000)}.ui-spotlight__hole{background: transparent;block-size: calc(var(--spot-h) + var(--spot-pad) * 2);border-radius: var(--spot-radius);box-shadow: 0 0 0 100vmax var(--spot-backdrop);inline-size: calc(var(--spot-w) + var(--spot-pad) * 2);inset-block-start: 0;inset-inline-start: 0;position: absolute;transform: translate( calc(var(--spot-x) - var(--spot-pad)),calc(var(--spot-y) - var(--spot-pad)) );transition: transform 0.2s ease,inline-size 0.2s ease,block-size 0.2s ease}@media (prefers-reduced-motion: reduce){.ui-spotlight__hole{transition: none}}@media (prefers-reduced-transparency: reduce){.ui-spotlight{--spot-backdrop: var(--surface-1)}}.ui-spotlight--ring .ui-spotlight__hole{outline: 2px solid var(--accent);outline-offset: 0}.ui-tour-note{background: var(--panel);border: 1px solid var(--line);border-radius: var(--radius-md);box-shadow: var(--shadow-raised);color: var(--text);display: grid;gap: var(--space-sm);max-inline-size: min(22rem,calc(100vw - 2rem));padding: var(--space-md);pointer-events: auto}.ui-tour-note__step{color: var(--text-dim);font-family: var(--mono);font-size: var(--text-2xs);letter-spacing: 0;text-transform: uppercase}.ui-tour-note__title{color: var(--text);font-size: var(--text-lg);font-weight: 600;margin: 0}.ui-tour-note__body{color: var(--text-soft);margin: 0}.ui-tour-note__actions{display: flex;gap: var(--space-sm);justify-content: flex-end}@media (forced-colors: active){.ui-spotlight__hole{outline: 2px solid CanvasText}}.ui-crosshair{--crosshair-x: 0;--crosshair-y: 0;--crosshair-color: var(--accent);--crosshair-readout-gap: 0.35rem;--crosshair-readout-x: var(--crosshair-readout-gap);--crosshair-readout-y: var(--crosshair-readout-gap);inset: 0;opacity: 0;pointer-events: none;position: absolute;transition: opacity 0.12s ease}.ui-crosshair.is-active{opacity: 1}.ui-crosshair[data-readout-inline='before']{--crosshair-readout-x: calc(-100% - var(--crosshair-readout-gap))}.ui-crosshair[data-readout-block='above']{--crosshair-readout-y: calc(-100% - var(--crosshair-readout-gap))}.ui-crosshair:dir(rtl){--crosshair-readout-x: calc(100% + var(--crosshair-readout-gap))}.ui-crosshair:dir(rtl)[data-readout-inline='before']{--crosshair-readout-x: calc(-1 * var(--crosshair-readout-gap))}@media (prefers-reduced-motion: reduce){.ui-crosshair{transition: none}}.ui-crosshair--muted{--crosshair-color: var(--line-strong)}.ui-crosshair__line{background: var(--crosshair-color);position: absolute}.ui-crosshair__line--x{inline-size: 1px;inset-block: 0;inset-inline-start: var(--crosshair-x)}.ui-crosshair__line--y{block-size: 1px;inset-block-start: var(--crosshair-y);inset-inline: 0}.ui-crosshair__badge{background: var(--crosshair-color);border-radius: var(--radius-sm);color: var(--button-text);font-family: var(--mono);font-size: var(--text-2xs);padding-block: 0.05rem;padding-inline: 0.3rem;position: absolute;white-space: nowrap}.ui-crosshair--muted .ui-crosshair__badge{background: var(--panel);border: 1px solid var(--line-strong);color: var(--text)}.ui-crosshair .ui-readout{background: var(--panel);border: 1px solid var(--line);border-radius: var(--radius-sm);box-shadow: var(--shadow-raised);color: var(--text);font-family: var(--mono);font-size: var(--text-xs);inset-block-start: var(--crosshair-y);inset-inline-start: var(--crosshair-x);max-inline-size: calc(100% - var(--crosshair-readout-gap) * 2);overflow: hidden;padding-block: 0.2rem;padding-inline: 0.4rem;pointer-events: none;position: absolute;text-overflow: ellipsis;transform: translate(var(--crosshair-readout-x),var(--crosshair-readout-y));white-space: nowrap}@media (forced-colors: active){.ui-crosshair__line{background: CanvasText}}.ui-sel{transition: opacity 0.12s ease,outline-color 0.12s ease}@media (prefers-reduced-motion: reduce){.ui-sel{transition: none}}.ui-sel--on{outline: 2px solid var(--accent);outline-offset: 1px}.ui-sel--off{opacity: 0.35}.ui-sel--maybe{outline: 1px dashed var(--accent);outline-offset: 1px}@media (forced-colors: active){.ui-sel--on{outline-color: Highlight}}.ui-citation,.ui-source-card,.ui-provenance{--src-tone: var(--text-dim)}.ui-src{--src-tone: var(--text-dim);align-items: center;background: var(--panel-soft);border: 1px solid color-mix(in srgb,var(--src-tone) 45%,var(--line));border-radius: var(--radius-pill);color: var(--text-soft);display: inline-flex;font-size: var(--text-2xs);gap: 0.35rem;padding: 0.08rem 0.55rem;vertical-align: baseline}.ui-src::before{background: var(--src-tone);border-radius: 50%;block-size: 0.45rem;content: '';flex: none;inline-size: 0.45rem;print-color-adjust: exact}.ui-src--verified{--src-tone: var(--success)}.ui-src--reviewed{--src-tone: var(--accent)}.ui-src--generated{--src-tone: var(--info)}.ui-src--unverified{--src-tone: var(--text-dim)}.ui-src--stale{--src-tone: var(--warning)}.ui-src--conflict{--src-tone: var(--danger)}.ui-citation{color: var(--accent-text);font-family: var(--mono);font-size: max(0.72em,var(--text-2xs));font-weight: 600;text-decoration: none;vertical-align: super}.ui-citation:hover{text-decoration: underline}.ui-citation--chip{align-items: center;background: var(--panel-soft);border: 1px solid var(--line);border-radius: var(--radius-pill);color: var(--text-soft);display: inline-flex;font-size: var(--text-2xs);gap: 0.35rem;padding: 0.08rem 0.55rem;vertical-align: baseline}.ui-citation--chip::before{background: var(--src-tone);border-radius: 50%;block-size: 0.45rem;content: '';inline-size: 0.45rem;print-color-adjust: exact}.ui-source-list{display: grid;gap: var(--space-sm);list-style: none;margin: 0;min-inline-size: 0;padding: 0}.ui-source-list__item{margin: 0;min-inline-size: 0}.ui-source-card{background: var(--panel-soft);border: 1px solid var(--line);border-inline-start: 2px solid var(--src-tone);border-radius: var(--radius-md);display: grid;gap: 0.3rem;min-inline-size: 0;padding: 0.75rem 0.9rem;print-color-adjust: exact}.ui-source-card:target,.ui-source-card.is-source-active{box-shadow: 0 0 0 3px color-mix(in srgb,var(--src-tone) 22%,transparent);outline: 2px solid var(--src-tone);outline-offset: 2px}.ui-source-card > *{min-inline-size: 0}.ui-source-card__title{color: var(--text);font-size: var(--text-sm);font-weight: 600;margin: 0;overflow-wrap: break-word}.ui-source-card__origin{color: var(--text-soft);font-family: var(--mono);font-size: var(--text-2xs);letter-spacing: var(--tracking-wide);overflow-wrap: anywhere}.ui-source-card__time{color: var(--text-dim);font-family: var(--mono);font-size: var(--text-2xs);overflow-wrap: anywhere}.ui-source-card__excerpt{color: var(--text-soft);margin: 0;overflow-wrap: anywhere}.ui-source-card__actions{display: flex;flex-wrap: wrap;gap: 0.5rem;margin-block-start: 0.2rem}.ui-provenance{align-items: center;color: var(--text-dim);display: inline-flex;flex-wrap: wrap;font-family: var(--mono);font-size: var(--text-2xs);gap: 0.3rem 0.75rem;letter-spacing: var(--tracking-wide)}.ui-provenance__item{align-items: center;display: inline-flex;gap: 0.35rem}.ui-provenance__item::before{background: var(--src-tone);border-radius: 50%;block-size: 0.45rem;content: '';inline-size: 0.45rem;print-color-adjust: exact}@media (forced-colors: active){.ui-citation--chip::before,.ui-provenance__item::before,.ui-src::before{background: CanvasText}.ui-source-card{border-inline-start-color: CanvasText}}@media print{.ui-prose .ui-citation[href]::after,.ui-citation[href]::after{content: none}.ui-source-card,.ui-source-list__item{break-inside: avoid}}.ui-generated{background: color-mix(in srgb,var(--accent) 4%,transparent);border: 1px solid var(--line);border-inline-start: 2px solid var(--accent);border-radius: var(--radius-md);display: grid;gap: var(--space-xs);padding: 0.85rem 1rem;print-color-adjust: exact}.ui-generated__label{align-items: center;color: var(--text-dim);display: inline-flex;font-family: var(--sans);font-size: var(--text-xs);gap: 0.4rem;letter-spacing: 0;text-transform: none}.ui-origin-label{align-items: center;border: 1px solid var(--line);border-radius: var(--radius-pill);color: var(--text-soft);display: inline-flex;font-family: var(--sans);font-size: var(--text-xs);gap: 0.35rem;letter-spacing: 0;padding: 0.08rem 0.55rem;text-transform: none}.ui-origin-label--ai{border-color: var(--accent);color: var(--accent-text)}.ui-reasoning{color: var(--text-dim);font-size: var(--text-sm)}.ui-reasoning > summary{color: var(--text-soft);cursor: pointer;font-family: var(--sans);font-size: var(--text-xs);letter-spacing: 0;text-transform: none}.ui-reasoning__body{margin-block-start: var(--space-xs)}.ui-tool-log{display: grid;gap: var(--space-2xs)}.ui-tool-call{border: 1px solid var(--line);border-radius: var(--radius-sm);font-family: var(--mono);font-size: var(--text-2xs)}.ui-tool-call > summary{align-items: center;cursor: pointer;display: flex;gap: 0.5rem;padding: 0.4rem 0.6rem}.ui-tool-call__name{color: var(--text)}.ui-tool-call__status{color: var(--text-dim);margin-inline-start: auto}.ui-tool-call__body{border-block-start: 1px solid var(--line);color: var(--text-soft);margin: 0;overflow-x: auto;padding: 0.5rem 0.6rem;white-space: pre-wrap}@media (pointer: coarse){.ui-reasoning > summary,.ui-tool-call > summary{min-block-size: var(--tap-target)}}@media (forced-colors: active){.ui-generated{border-inline-start-color: CanvasText}}.ui-state{--state-tone: var(--text-dim);align-items: center;display: inline-flex;font-size: var(--text-sm);gap: 0.4rem}.ui-state::before{background: var(--state-tone);border-radius: 50%;block-size: 0.5rem;content: '';flex: none;inline-size: 0.5rem;print-color-adjust: exact}.ui-state__label{color: var(--text)}.ui-state__detail{color: var(--text-dim);font-size: var(--text-2xs)}.ui-state--busy::before{animation: uiStatePulse 1.1s ease-in-out infinite}@keyframes uiStatePulse{50%{opacity: 0.3}}@media (prefers-reduced-motion: reduce){.ui-state--busy::before{animation: none}}.ui-state--saving{--state-tone: var(--accent)}.ui-state--saved{--state-tone: var(--success)}.ui-state--queued{--state-tone: var(--text-dim)}.ui-state--offline{--state-tone: var(--warning)}.ui-state--stale{--state-tone: var(--warning)}.ui-state--conflict{--state-tone: var(--danger)}.ui-state--error{--state-tone: var(--danger)}.ui-state--locked{--state-tone: var(--text-dim)}.ui-state--reviewed{--state-tone: var(--success)}.ui-state--needs-review{--state-tone: var(--warning)}.ui-syncbar{align-items: center;border-block-end: 1px solid var(--line);display: flex;flex-wrap: wrap;gap: var(--space-sm) var(--space-md);justify-content: space-between;padding-block: var(--space-xs)}.ui-job{--job-progress: 0%;--job-tone: var(--text-dim);background: var(--panel);border: 1px solid var(--line);border-inline-start: 2px solid var(--job-tone);border-radius: var(--radius-md);display: grid;gap: var(--space-sm);padding: var(--space-md)}.ui-job__head{align-items: start;display: flex;flex-wrap: wrap;gap: var(--space-xs) var(--space-md);justify-content: space-between}.ui-job__title{color: var(--text);font-family: var(--display);font-size: var(--text-sm);letter-spacing: var(--tracking-wide);margin: 0;text-transform: uppercase}.ui-job__meta{color: var(--text-dim);font-family: var(--mono);font-size: var(--text-2xs);letter-spacing: var(--tracking-wide);text-transform: uppercase}.ui-job__body{color: var(--text-soft);margin: 0}.ui-job__progress{background: var(--panel-soft);border: 1px solid var(--line);border-radius: var(--radius-pill);block-size: 0.5rem;overflow: hidden}.ui-job__bar{background: var(--job-tone);block-size: 100%;display: block;inline-size: clamp(0%,var(--job-progress),100%);min-inline-size: 1px;print-color-adjust: exact;transition: inline-size var(--duration-base) var(--ease-standard)}.ui-job__actions{align-items: center;display: flex;flex-wrap: wrap;gap: var(--space-xs)}.ui-job--compact{gap: var(--space-xs);padding: var(--space-sm)}.ui-job--queued{--job-tone: var(--text-dim)}.ui-job--running{--job-tone: var(--accent)}.ui-job--blocked{--job-tone: var(--warning)}.ui-job--failed{--job-tone: var(--danger)}.ui-job--complete{--job-tone: var(--success)}.ui-job--running .ui-job__bar{background-image: linear-gradient( 90deg,var(--job-tone),color-mix(in srgb,var(--job-tone) 62%,var(--panel)) )}@media (prefers-reduced-motion: reduce){.ui-job__bar{transition: none}}.ui-severity,.ui-severity-row,.ui-severity-dot,.ui-severity-tone,.ui-timestrip__event{--severity-tone: var(--text-dim)}:is(.ui-severity,.ui-severity-row,.ui-severity-dot,.ui-severity-tone,.ui-timestrip__event):is( [data-level='critical'],[data-level='error'] ){--severity-tone: var(--danger)}:is(.ui-severity,.ui-severity-row,.ui-severity-dot,.ui-severity-tone,.ui-timestrip__event)[data-level='warning']{--severity-tone: var(--warning)}:is(.ui-severity,.ui-severity-row,.ui-severity-dot,.ui-severity-tone,.ui-timestrip__event)[data-level='notice']{--severity-tone: var(--info)}:is(.ui-severity,.ui-severity-row,.ui-severity-dot,.ui-severity-tone,.ui-timestrip__event)[data-level='ok']{--severity-tone: var(--success)}.ui-severity{background: color-mix(in oklch,var(--severity-tone) 16%,transparent);border-radius: var(--radius-pill);color: var(--severity-tone);display: inline-block;flex: none;font-family: var(--mono);font-size: var(--text-2xs);font-weight: 700;letter-spacing: var(--tracking-wide);line-height: 1.2;padding: 0.1rem 0.4rem;text-transform: uppercase}.ui-severity[data-level='critical']{background: var(--danger);color: var(--button-text)}.ui-severity[data-level='unknown']{background: none;border: 1px solid var(--line-strong);padding-block: calc(0.1rem - 1px)}.ui-severity-dot{background: var(--severity-tone);border-radius: 50%;block-size: 0.5rem;display: inline-block;flex: none;inline-size: 0.5rem;print-color-adjust: exact}.ui-severity-dot[data-level='unknown']{background: none;box-shadow: inset 0 0 0 1px var(--line-strong)}.ui-severity-row{align-items: baseline;border-block-end: 1px solid var(--line);border-inline-start: 2px solid var(--severity-tone);display: flex;gap: var(--space-xs);padding: var(--space-2xs) var(--space-xs)}.ui-severity-row:last-child{border-block-end: 0}.ui-severity-row__title{flex: 1 1 auto;min-inline-size: 0;overflow: hidden;text-overflow: ellipsis;white-space: nowrap}.ui-severity-row__meta{color: var(--text-dim);flex: none;font-family: var(--mono);font-size: var(--text-2xs)}.ui-timestrip{block-size: 1.4rem;display: block;inline-size: 100%;position: relative}.ui-timestrip__axis{background: var(--line);block-size: 1px;inset-block-end: 0.35rem;inset-inline: 0;position: absolute}.ui-timestrip__now{border-inline-end: 1px dashed var(--text-dim);inset-block: 0.1rem 0.25rem;inset-inline-end: 0;position: absolute}.ui-timestrip__event{background: var(--severity-tone);block-size: 0.4rem;border-radius: var(--radius-pill);inline-size: 0.4rem;inset-block-end: 0.55rem;inset-inline-start: calc(clamp(0,var(--at,0),1) * 100%);position: absolute;translate: -50% 0}.ui-timestrip__event[data-outside]{opacity: 0.55}@media (forced-colors: active){.ui-timestrip__event{background: CanvasText}}@media (forced-colors: active){.ui-state::before{background: CanvasText}.ui-job{border-inline-start-color: CanvasText}.ui-job__bar{background: CanvasText}.ui-severity{border: 1px solid currentColor}.ui-severity-row{border-inline-start-color: CanvasText}.ui-severity-dot{background: CanvasText}}@property --lo{syntax: '<number>';inherits: true;initial-value: 0}@property --hi{syntax: '<number>';inherits: true;initial-value: 1}.ui-interval{--lo: 0;--hi: 1;display: grid;gap: 0.35rem;inline-size: 100%;min-inline-size: 0}.ui-interval__track{background: var(--surface-4);block-size: 0.7rem;border: 1px solid var(--line);border-radius: var(--radius-pill);min-inline-size: 8rem;position: relative}.ui-interval__range{background: color-mix(in srgb,var(--accent) 26%,transparent);border: 1px solid color-mix(in srgb,var(--accent) 58%,var(--line));border-radius: var(--radius-pill);inline-size: max(2px,calc((max(var(--lo),var(--hi)) - min(var(--lo),var(--hi))) * 100%));inset-block: 18%;inset-inline-start: calc(min(var(--lo),var(--hi)) * 100%);position: absolute}.ui-interval__point{background: var(--text);border: 2px solid var(--panel);border-radius: 50%;block-size: 0.72rem;box-shadow: 0 0 0 1px var(--line-strong);inline-size: 0.72rem;inset-block-start: 50%;inset-inline-start: calc(var(--v,var(--lo)) * 100%);position: absolute;transform: translate(-50%,-50%)}.ui-interval:dir(rtl) .ui-interval__point{transform: translate(50%,-50%)}.ui-interval__label,.ui-interval__bounds{color: var(--text-dim);font-family: var(--mono);font-size: var(--text-2xs);letter-spacing: 0}.ui-interval__label{color: var(--text-soft)}.ui-interval__bounds{display: flex;gap: var(--space-sm);justify-content: space-between}@media (forced-colors: active){.ui-interval__track,.ui-interval__range,.ui-interval__point{border-color: CanvasText}.ui-interval__range,.ui-interval__point{background: CanvasText}}@media print{.ui-interval__range,.ui-interval__point{-webkit-print-color-adjust: exact;print-color-adjust: exact}}.ui-clamp{--clamp-lines: 4;display: grid;gap: var(--space-2xs);min-inline-size: 0;position: relative}.ui-clamp__body{-webkit-box-orient: vertical;-webkit-line-clamp: var(--clamp-lines);display: -webkit-box;line-clamp: var(--clamp-lines);mask-image: linear-gradient(to bottom,#000 72%,transparent 100%);overflow: hidden}.ui-clamp:has(> .ui-clamp__toggle:checked) .ui-clamp__body{-webkit-line-clamp: unset;display: block;line-clamp: none;mask-image: none}.ui-clamp__toggle{block-size: 1px;clip-path: inset(50%);inline-size: 1px;overflow: hidden;position: absolute;white-space: nowrap}.ui-clamp__control{color: var(--accent-text);cursor: pointer;font-family: var(--mono);font-size: var(--text-2xs);inline-size: max-content;letter-spacing: var(--tracking-wide);text-decoration: underline;text-decoration-color: color-mix(in srgb,var(--accent) 55%,transparent);text-underline-offset: 0.2rem;text-transform: uppercase}.ui-clamp__toggle:focus-visible + .ui-clamp__body + .ui-clamp__control{outline: 2px solid var(--focus-ring);outline-offset: 2px}.ui-clamp__less{display: none}.ui-clamp:has(> .ui-clamp__toggle:checked) .ui-clamp__more{display: none}.ui-clamp:has(> .ui-clamp__toggle:checked) .ui-clamp__less{display: inline}@media (hover: hover){.ui-clamp__control:hover{text-decoration-color: currentColor}}@media print{.ui-clamp__body{-webkit-line-clamp: unset;display: block;line-clamp: none;mask-image: none}.ui-clamp__toggle,.ui-clamp__control{display: none}}.ui-highlights{--highlight-evidence: var(--accent-soft);--highlight-search: var(--warning-soft);--highlight-current: color-mix(in srgb,var(--accent) 22%,transparent)}.ui-highlights::highlight(bronto-evidence){background-color: var(--highlight-evidence);color: inherit;text-decoration-color: var(--accent);text-decoration-line: underline;text-decoration-thickness: 0.1em;text-underline-offset: 0.18em}.ui-highlights::highlight(bronto-search){background-color: var(--highlight-search);color: inherit}.ui-highlights::highlight(bronto-current){background-color: var(--highlight-current);color: var(--text)}@media (forced-colors: active){.ui-highlights::highlight(bronto-evidence),.ui-highlights::highlight(bronto-search),.ui-highlights::highlight(bronto-current){background-color: Highlight;color: HighlightText;text-decoration-color: HighlightText}}@media print{.ui-highlights{-webkit-print-color-adjust: exact;print-color-adjust: exact}}.ui-diff{--diff-add-bg: color-mix(in srgb,var(--success) 14%,transparent);--diff-remove-bg: color-mix(in srgb,var(--danger) 14%,transparent);--diff-add-ink: var(--success);--diff-remove-ink: var(--danger);border: 1px solid var(--line);border-radius: var(--radius-sm);display: grid;font-family: var(--mono);font-size: var(--text-xs);grid-template-columns: auto auto minmax(0,1fr);line-height: 1.6;overflow: hidden}.ui-diff--split{grid-template-columns: 1fr 1fr}.ui-diff__pane{display: grid;grid-template-columns: auto minmax(0,1fr);min-inline-size: 0}.ui-diff--split > .ui-diff__pane + .ui-diff__pane{border-inline-start: 1px solid var(--line)}.ui-diff__hunk{display: contents}.ui-diff__row{display: contents}.ui-diff__head{background: var(--surface-2);color: var(--text-dim);grid-column: 1 / -1;min-inline-size: 0;overflow-wrap: anywhere;padding: var(--space-2xs) var(--space-sm)}.ui-diff__ln{align-self: start;color: var(--text-dim);font-variant-numeric: tabular-nums;padding: 0 var(--space-sm);text-align: end;-webkit-user-select: none;user-select: none}.ui-diff__code{overflow-wrap: anywhere;padding: 0 var(--space-sm);white-space: pre-wrap}.ui-diff__code::before{color: var(--diff-tint,var(--text-dim));content: var(--diff-sign,'\00a0');display: inline-block;inline-size: 1ch;margin-inline-end: var(--space-2xs);-webkit-user-select: none;user-select: none}.ui-diff__row--add{--diff-sign: '+';--diff-tint: var(--diff-add-ink)}.ui-diff__row--remove{--diff-sign: '\2212';--diff-tint: var(--diff-remove-ink)}.ui-diff__row--context{--diff-sign: '\00a0'}.ui-diff__row--add > .ui-diff__ln,.ui-diff__row--add > .ui-diff__code{background: var(--diff-add-bg)}.ui-diff__row--remove > .ui-diff__ln,.ui-diff__row--remove > .ui-diff__code{background: var(--diff-remove-bg)}@media (forced-colors: active){.ui-diff__row--add > .ui-diff__code,.ui-diff__row--remove > .ui-diff__code{border-inline-start: 2px solid currentColor}}@media print{.ui-diff__head,.ui-diff__row--add > .ui-diff__ln,.ui-diff__row--add > .ui-diff__code,.ui-diff__row--remove > .ui-diff__ln,.ui-diff__row--remove > .ui-diff__code{-webkit-print-color-adjust: exact;print-color-adjust: exact}}.ui-code{border: 1px solid var(--line);border-radius: var(--radius-sm);font-family: var(--mono);font-size: var(--text-xs);overflow: hidden}.ui-code__head{background: var(--surface-2);border-block-end: 1px solid var(--line);color: var(--text-dim);display: flex;gap: var(--space-sm);justify-content: space-between;min-inline-size: 0;overflow: hidden;padding: var(--space-2xs) var(--space-sm);text-overflow: ellipsis;white-space: nowrap}.ui-code__head > *{min-inline-size: 0;overflow: hidden;text-overflow: ellipsis}.ui-code__head > :last-child{flex-shrink: 0}.ui-code__body{counter-reset: ui-code-ln;margin: 0;overflow-wrap: anywhere;padding: var(--space-sm) 0;white-space: pre-wrap}.ui-code__line{display: block;padding-inline: var(--space-sm)}.ui-code--numbered .ui-code__line{padding-inline-start: 0}.ui-code--numbered .ui-code__line::before{color: var(--text-dim);content: counter(ui-code-ln);counter-increment: ui-code-ln;display: inline-block;inline-size: 3ch;margin-inline-end: var(--space-sm);text-align: end;-webkit-user-select: none;user-select: none}.ui-code__line--add{background: color-mix(in srgb,var(--success) 14%,transparent)}.ui-code__line--remove{background: color-mix(in srgb,var(--danger) 14%,transparent)}.ui-code__line--hl{background: color-mix(in srgb,var(--accent) 14%,transparent)}@media (forced-colors: active){.ui-code__line--add,.ui-code__line--remove,.ui-code__line--hl{border-inline-start: 3px solid currentColor}}@media print{.ui-code__head,.ui-code__line--add,.ui-code__line--remove,.ui-code__line--hl{-webkit-print-color-adjust: exact;print-color-adjust: exact}}.ui-spark{align-items: flex-end;block-size: 1em;display: inline-flex;gap: 1px;inline-size: max-content;vertical-align: -0.15em}.ui-spark__bar{background: currentColor;block-size: max(1px,calc(var(--v,0) * 100%));border-radius: 0.5px;flex: 0 0 0.25em;min-inline-size: 2px}.ui-spark__bar--accent{background: var(--accent)}.ui-spark__bar--pos{background: var(--success)}.ui-spark__bar--neg{background: var(--danger)}.ui-spark--dots .ui-spark__bar{--_dot: var(--spark-dot,0.16em);--_step: calc(var(--_dot) + var(--spark-dot-gap,0.06em));border-radius: 0;-webkit-mask: repeating-linear-gradient(to top,#000 0 var(--_dot),transparent var(--_dot) var(--_step));mask: repeating-linear-gradient(to top,#000 0 var(--_dot),transparent var(--_dot) var(--_step))}@media (forced-colors: active){.ui-spark__bar{background: CanvasText}}@media print{.ui-spark__bar{-webkit-print-color-adjust: exact;print-color-adjust: exact}}@property --band-lo{syntax: '<number>';inherits: true;initial-value: 0.5}@property --band-hi{syntax: '<number>';inherits: true;initial-value: 0.8}@property --t{syntax: '<number>';inherits: true;initial-value: 0}.ui-bullet{--band-lo: 0.5;--band-hi: 0.8;background: linear-gradient( to right,var(--surface-4) 0 calc(var(--band-lo) * 100%),var(--surface-3) calc(var(--band-lo) * 100%) calc(var(--band-hi) * 100%),var(--surface-2) calc(var(--band-hi) * 100%) 100% );block-size: 1.25rem;border-radius: var(--radius-sm);inline-size: 100%;position: relative}.ui-bullet:dir(rtl){background: linear-gradient( to left,var(--surface-4) 0 calc(var(--band-lo) * 100%),var(--surface-3) calc(var(--band-lo) * 100%) calc(var(--band-hi) * 100%),var(--surface-2) calc(var(--band-hi) * 100%) 100% )}.ui-bullet__measure{background: var(--text);border-radius: var(--radius-sm);inline-size: max(calc(sign(var(--v,1)) * 2px),calc(var(--v,0) * 100%));inset-block: 30%;inset-inline-start: 0;position: absolute}.ui-bullet__measure--accent{background: var(--accent)}.ui-bullet__measure--pos{background: var(--success)}.ui-bullet__measure--neg{background: var(--danger)}.ui-bullet__target{background: var(--text);inline-size: 2px;inset-block: 8%;inset-inline-start: calc(var(--t,0) * 100%);position: absolute;transform: translateX(-50%)}.ui-bullet:dir(rtl) .ui-bullet__target{transform: translateX(50%)}.ui-bullet__label{color: var(--text-dim);display: flex;font-family: var(--mono);font-size: var(--text-2xs);gap: var(--space-sm);justify-content: space-between;letter-spacing: var(--tracking-wide);margin-block-start: 0.3rem}@media (forced-colors: active){.ui-bullet{border: 1px solid CanvasText}.ui-bullet__measure,.ui-bullet__target{background: CanvasText}}@media print{.ui-bullet{-webkit-print-color-adjust: exact;print-color-adjust: exact}}:root{--sidenote-width: 12rem;--sidenote-gap: 2rem}.ui-sidenote,.ui-marginnote{border-inline-start: 2px solid var(--line);color: var(--text-dim);display: block;font-size: var(--text-2xs);line-height: 1.5;margin-block: var(--space-2xs);padding-inline-start: var(--space-md)}.ui-sidenote__ref{color: var(--accent-text);counter-increment: ui-sidenote;font-size: 0.75em;vertical-align: super}.ui-sidenote__ref::after{content: counter(ui-sidenote)}.ui-sidenote::before{color: var(--accent-text);content: counter(ui-sidenote) '. '}@media (min-width: 60rem){.ui-sidenote,.ui-marginnote{border-inline-start: 0;clear: inline-end;float: inline-end;inline-size: var(--sidenote-width);margin-block: 0;margin-inline-end: calc(-1 * (var(--sidenote-width) + var(--sidenote-gap)));padding-inline-start: 0;text-align: start}}.ui-textref{--textref-highlight: var(--accent-soft);color: var(--accent-text);text-decoration: underline;text-decoration-style: dotted;text-underline-offset: 0.2em}.ui-textref::before{content: '\201F';margin-inline-end: 0.15em}@media (hover: hover){.ui-textref:hover{text-decoration-style: solid}}.ui-textref:focus-visible{outline: 2px solid var(--focus-ring);outline-offset: 2px}::target-text{background-color: var(--textref-highlight,var(--accent-soft));color: var(--text)}@media (forced-colors: active){::target-text{background-color: Highlight;color: HighlightText}}.ui-term{background: none;border: 0;color: inherit;cursor: help;font: inherit;padding: 0;text-decoration: underline;text-decoration-color: var(--line-strong);text-decoration-style: dotted;text-underline-offset: 0.2em}@media (hover: hover){.ui-term:hover{text-decoration-color: var(--accent)}}.ui-term:focus-visible{outline: 2px solid var(--focus-ring);outline-offset: 2px}.ui-def{background: var(--surface-raised);border: 1px solid var(--line);border-radius: var(--radius-md);box-shadow: var(--shadow-raised);color: var(--text);font-family: var(--sans);font-size: var(--text-sm);line-height: 1.5;margin: 0;max-inline-size: 22rem;padding: var(--space-sm) var(--space-md)}@supports (anchor-name: --x){.ui-def{inset: auto;margin-block-start: 0.4rem;position-area: block-end span-inline-end;position-try-fallbacks: flip-block,flip-inline}}.ui-glossary{border-block-start: 1px solid var(--line);display: grid;gap: var(--space-2xs) var(--space-md);grid-template-columns: fit-content(45%) minmax(0,1fr);margin: 0;padding-block-start: var(--space-md)}.ui-glossary__term{color: var(--text);font-family: var(--mono);font-size: var(--text-xs);font-weight: 600;letter-spacing: var(--tracking-wide);min-inline-size: 0;overflow-wrap: anywhere}.ui-glossary__def{color: var(--text-dim);font-size: var(--text-sm);margin: 0;min-inline-size: 0}@media (max-width: 32rem){.ui-glossary{grid-template-columns: 1fr;gap: 0.15rem var(--space-md)}.ui-glossary__def{margin-block-end: var(--space-xs)}}.ui-toc{--toc-top: var(--space-md);align-self: start;font-family: var(--mono);font-size: var(--text-xs);inset-block-start: var(--toc-top);letter-spacing: var(--tracking-wide);position: sticky}.ui-toc__title{color: var(--text-dim);font-size: var(--text-2xs);margin-block-end: var(--space-xs);text-transform: uppercase}.ui-toc__list{display: grid;gap: 1px;list-style: none;margin: 0;padding: 0}.ui-toc__list .ui-toc__list{margin-inline-start: var(--space-sm)}.ui-toc__link{border-inline-start: 2px solid var(--line);color: var(--text-dim);display: block;padding: 0.3rem var(--space-sm);text-decoration: none;transition: color var(--duration-fast) var(--ease-standard)}.ui-toc__link[aria-current]:not([aria-current='false']){border-inline-start-color: var(--accent);color: var(--accent-text)}.ui-toc__link:focus-visible{outline: 2px solid var(--focus-ring);outline-offset: -2px}@media (hover: hover){.ui-toc__link:hover:not([aria-current]:not([aria-current='false'])){color: var(--text)}}@media (forced-colors: active){.ui-toc__link[aria-current]:not([aria-current='false']){border-inline-start-color: Highlight;color: Highlight}}@media (prefers-reduced-motion: reduce){.ui-toc__link{transition: none}}.ui-tree{color: var(--text);font-family: var(--mono);font-size: var(--text-sm);line-height: 1.5}.ui-tree__branch,.ui-tree__leaf{display: block}.ui-tree__branch .ui-tree__branch,.ui-tree__branch .ui-tree__leaf{border-inline-start: 1px solid var(--line);margin-inline-start: 0.5rem;padding-inline-start: var(--space-sm)}.ui-tree__summary{align-items: center;cursor: pointer;display: flex;gap: var(--space-2xs);list-style: none;padding-block: var(--space-2xs)}.ui-tree__summary::-webkit-details-marker{display: none}.ui-tree__summary::before{block-size: 0.4rem;border-block-end: 1.5px solid var(--text-dim);border-inline-end: 1.5px solid var(--text-dim);content: '';flex: 0 0 auto;inline-size: 0.4rem;transform: rotate(-45deg);transition: transform var(--duration-fast) var(--ease-spring)}.ui-tree__branch[open] > .ui-tree__summary::before{border-color: var(--accent);transform: rotate(45deg)}.ui-tree__branch[open] > .ui-tree__summary{color: var(--accent-text)}.ui-tree__leaf{align-items: center;display: flex;gap: var(--space-2xs);padding-block: var(--space-2xs)}.ui-tree__leaf::before{content: '';flex: 0 0 auto;inline-size: 0.4rem}.ui-tree__label{min-inline-size: 0;overflow: hidden;text-overflow: ellipsis;white-space: nowrap}@supports selector(::details-content){@media (prefers-reduced-motion: no-preference){.ui-tree{interpolate-size: allow-keywords}.ui-tree__branch::details-content{block-size: 0;overflow: hidden;transition: block-size var(--duration-base) var(--ease-out),content-visibility var(--duration-base) allow-discrete}.ui-tree__branch[open]::details-content{block-size: auto}}}@media (prefers-reduced-motion: reduce){.ui-tree__summary::before{transition: none}}@media (forced-colors: active){.ui-tree__branch[open] > .ui-tree__summary::before{border-color: Highlight}}}
|
|
1
|
+
@layer bronto{.ui-report{--report-width: 64rem;--report-padding-block: var(--space-2xl);--report-gap: var(--space-xl);--report-measure: 68ch;color: var(--text-soft);display: grid;font-size: 1.125rem;line-height: 1.65;gap: var(--report-gap);inline-size: min(100%,var(--report-width));margin-inline: auto;padding: var(--report-padding-block) var(--space-md)}.ui-report p,.ui-report__section > :is(ul,ol,blockquote){max-inline-size: var(--report-measure);overflow-wrap: anywhere}.ui-report .ui-prose{font-size: inherit}.ui-report--compact{--report-gap: var(--space-md);--report-padding-block: var(--space-xl)}.ui-report--numbered{counter-reset: report-section}.ui-report > *,.ui-report__cover > *,.ui-report__head > *,.ui-report__toc > *,.ui-report__summary > *,.ui-report__decision > *,.ui-report__finding > *,.ui-report__evidence > *,.ui-report__section > *,.ui-report__figure > *,.ui-claim > *,.ui-evidence-grid > *,.ui-evidence-ledger > *,.ui-compare > *,.ui-compare__col > *{min-inline-size: 0}.ui-report__cover{align-content: end;border-block-end: 1px solid var(--line);display: grid;gap: var(--space-md);min-block-size: min(62vh,34rem);padding-block-end: var(--space-xl)}.ui-report__cover--compact{min-block-size: auto;padding-block: var(--space-xl) var(--space-lg)}.ui-report__head{align-items: end;border-block-end: 1px solid var(--line);display: flex;flex-wrap: wrap;gap: var(--space-md);justify-content: space-between;padding-block-end: var(--space-md)}.ui-report__title{color: var(--text);font-family: var(--sans);font-size: clamp(2rem,4vw,3rem);font-weight: 650;letter-spacing: 0;line-height: 1.15;margin: 0;max-inline-size: var(--report-measure);text-transform: none;text-wrap: balance}.ui-report__subtitle{color: var(--text-dim);font-size: var(--text-lg);line-height: 1.5;margin: 0;max-inline-size: var(--report-measure)}.ui-report__meta{align-items: center;color: var(--text-dim);display: flex;flex-wrap: wrap;font-family: var(--sans);font-size: var(--text-xs);gap: 0.55rem;letter-spacing: 0;list-style: none;margin: 0;padding: 0;text-transform: none}.ui-report__meta > *{align-items: center;display: inline-flex;gap: 0.55rem}.ui-report__meta > :not(:last-child)::after{background: var(--line-strong);border-radius: 50%;block-size: 0.22rem;content: '';inline-size: 0.22rem}.ui-report__toc{border-block: 1px solid var(--line);display: grid;gap: var(--space-xs);padding-block: var(--space-md)}.ui-report__toc > summary{cursor: pointer;font-size: var(--text-sm);font-weight: 600;min-block-size: var(--tap-target);padding-block: var(--space-xs)}details.ui-report__toc:not([open]) > :not(summary){display: none}.ui-report__toc ol,.ui-report__toc ul{display: grid;gap: 0.35rem;margin: 0;padding-inline-start: var(--space-md)}.ui-report__toc a{color: var(--text);text-decoration: underline;text-decoration-color: color-mix(in srgb,var(--accent) 45%,transparent);text-underline-offset: 0.2rem}.ui-report__summary,.ui-report__finding,.ui-report__evidence{background: var(--panel);border: 1px solid var(--line);border-radius: var(--radius-md);display: grid;gap: var(--space-sm);padding: var(--space-md)}.ui-report__summary{border-inline-start: 2px solid var(--accent)}.ui-report__decision{background: var(--panel);border: 0;border-inline-start: 3px solid var(--accent);border-radius: var(--radius-md);display: grid;gap: var(--space-sm);padding: var(--space-md)}.ui-report__decision-kicker{color: var(--accent-text);font-family: var(--sans);font-size: var(--text-2xs);letter-spacing: 0;margin: 0;text-transform: none}.ui-report__decision-title{color: var(--text);font-family: var(--sans);font-size: var(--text-lg);font-weight: var(--display-weight);letter-spacing: 0;line-height: 1.18;margin: 0;text-transform: none;text-wrap: balance}.ui-report__decision-body{color: var(--text-soft);line-height: 1.6;margin: 0;max-inline-size: var(--report-measure)}.ui-report__decision-meta{color: var(--text-dim);display: flex;flex-wrap: wrap;font-family: var(--sans);font-size: var(--text-2xs);gap: 0.45rem 0.75rem;letter-spacing: 0}.ui-report__decision-grid{container: bronto-decision / inline-size;border-block-start: 1px solid var(--line);display: grid;gap: 0}.ui-report__decision-item{align-items: start;border-block-end: 1px solid var(--line);display: grid;gap: var(--space-xs);grid-template-columns: minmax(8rem,14rem) minmax(0,1fr);padding-block: var(--space-xs)}.ui-report__decision-label,.ui-report__decision-value{margin: 0}.ui-report__decision-label{color: var(--text-dim);font-family: var(--sans);font-size: var(--text-2xs);letter-spacing: 0;text-transform: none}.ui-report__decision-value{overflow-wrap: anywhere;color: var(--text-soft);line-height: 1.5}.ui-report__finding{--report-finding-tone: var(--line-strong);border-inline-start: 2px solid var(--report-finding-tone)}.ui-report__finding--critical{--report-finding-tone: var(--danger)}.ui-report__finding--major{--report-finding-tone: var(--warning)}.ui-report__finding--minor{--report-finding-tone: var(--info)}.ui-report__finding--resolved{--report-finding-tone: var(--success)}.ui-report__finding-title,.ui-report__finding-claim,.ui-report__finding-impact,.ui-report__finding-remediation,.ui-report__finding-evidence,.ui-report__finding-caveat{margin: 0}.ui-report__finding-title{color: var(--text);font-size: var(--text-base);font-weight: 650;line-height: 1.25}.ui-report__finding-claim{color: var(--text);line-height: 1.6}.ui-report__finding-impact,.ui-report__finding-remediation,.ui-report__finding-evidence{color: var(--text-soft);line-height: 1.55}.ui-report__finding-caveat{color: var(--text-dim);font-size: var(--text-sm);line-height: 1.55}.ui-claim{--claim-tone: var(--accent);background: var(--panel-soft);border: 1px solid var(--line);border-inline-start: 2px solid var(--claim-tone);border-radius: var(--radius-md);display: grid;gap: var(--space-xs);padding: var(--space-sm)}.ui-claim--supported{--claim-tone: var(--success)}.ui-claim--partial{--claim-tone: var(--warning)}.ui-claim--disputed,.ui-claim--unsupported{--claim-tone: var(--danger)}.ui-claim--unknown{--claim-tone: var(--info)}.ui-claim__statement,.ui-claim__status,.ui-claim__scope,.ui-claim__basis,.ui-claim__limits,.ui-claim__refs,.ui-claim__caveat{margin: 0}.ui-claim__statement{color: var(--text);font-weight: 650;line-height: 1.45}.ui-claim__status,.ui-claim__scope,.ui-claim__refs{color: var(--text-dim);font-family: var(--sans);font-size: var(--text-2xs);letter-spacing: 0;text-transform: none}.ui-claim__basis,.ui-claim__limits,.ui-claim__caveat{color: var(--text-soft);font-size: var(--text-sm);line-height: 1.55}.ui-report__evidence{background: var(--panel-soft)}.ui-report__evidence:has(> .ui-table-wrap:only-child){padding: 0}.ui-report__evidence:has(> .ui-table-wrap:only-child) > .ui-table-wrap{border: 0;border-radius: var(--radius-md)}.ui-report__section{display: grid;gap: var(--space-md);scroll-margin-block-start: 6rem}.ui-report__section + .ui-report__section{border-block-start: 1px solid var(--line);padding-block-start: var(--space-xl)}.ui-report__section-head{color: var(--text);font-family: var(--sans);font-size: var(--text-xl);font-weight: 650;letter-spacing: 0;line-height: 1.1;margin: 0;text-transform: none;text-wrap: balance}.ui-report--numbered .ui-report__section-head::before{color: var(--accent-text);content: counter(report-section,decimal-leading-zero) ' / ';counter-increment: report-section}.ui-report--numbered .ui-report__section--unnumbered > .ui-report__section-head::before{content: none;counter-increment: none}.ui-report__figure{display: grid;gap: var(--space-sm);margin: 0}.ui-report__caption{color: var(--text-dim);font-family: var(--sans);font-size: var(--text-2xs);letter-spacing: 0;line-height: 1.5;text-transform: none}.ui-evidence-grid{display: grid;gap: var(--space-sm);grid-template-columns: repeat(auto-fit,minmax(min(100%,16rem),1fr))}.ui-evidence-item{background: var(--panel-soft);border: 1px solid var(--line);border-radius: var(--radius-md);display: grid;gap: 0.35rem;padding: var(--space-sm)}.ui-evidence-item__title{color: var(--text);font-size: var(--text-sm);font-weight: 600;margin: 0}.ui-evidence-item__meta{color: var(--text-dim);font-family: var(--sans);font-size: var(--text-2xs);letter-spacing: 0}.ui-evidence-item__body{color: var(--text-soft);font-size: var(--text-sm);line-height: 1.55;margin: 0}.ui-evidence-item__kind,.ui-evidence-item__method,.ui-evidence-item__window,.ui-evidence-item__value,.ui-evidence-item__source,.ui-evidence-item__caveat{margin: 0}.ui-evidence-item__kind,.ui-evidence-item__method,.ui-evidence-item__window,.ui-evidence-item__source{color: var(--text-dim);font-family: var(--sans);font-size: var(--text-2xs);letter-spacing: 0;text-transform: none}.ui-evidence-item__value{color: var(--text);font-size: var(--text-base);font-weight: 650}.ui-evidence-item__caveat{color: var(--text-dim);font-size: var(--text-sm);line-height: 1.5}.ui-evidence-ledger{display: grid;gap: var(--space-sm)}.ui-report__actions{container: bronto-actions / inline-size;border-block-start: 1px solid var(--line);display: grid;gap: 0}.ui-report__action{align-items: start;border-block-end: 1px solid var(--line);display: grid;gap: var(--space-xs);grid-template-columns: minmax(0,1fr) auto;padding-block: var(--space-sm)}.ui-report__action > :not(.ui-report__action-status){grid-column: 1}.ui-report__action-status{color: var(--text-dim);font-family: var(--sans);font-size: var(--text-2xs);grid-column: 2;grid-row: 1;letter-spacing: 0;place-self: start end;text-transform: none;overflow-wrap: anywhere;white-space: normal}.ui-report__action-title,.ui-report__action-owner,.ui-report__action-due,.ui-report__action-priority,.ui-report__action-criteria,.ui-report__action-source{margin: 0}.ui-report__action-title{color: var(--text);font-weight: 650;line-height: 1.45}.ui-report__action-owner,.ui-report__action-due,.ui-report__action-priority,.ui-report__action-source{color: var(--text-dim);font-family: var(--sans);font-size: var(--text-2xs);letter-spacing: 0;text-transform: none}.ui-report__action-criteria{color: var(--text-soft);font-size: var(--text-sm);line-height: 1.5}@container bronto-decision (max-width: 32rem){.ui-report__decision-item{grid-template-columns: minmax(0,1fr)}}@container bronto-actions (max-width: 32rem){.ui-report__action{grid-template-columns: 1fr}.ui-report__action-status{grid-column: 1;grid-row: auto;place-self: auto start}}.ui-report__sources,.ui-report__appendix,.ui-report__footnotes{border-block-start: 1px solid var(--line);color: var(--text-dim);display: grid;font-size: var(--text-sm);gap: var(--space-sm);padding-block-start: var(--space-md)}.ui-compare{display: grid;gap: var(--space-md);grid-template-columns: repeat(auto-fit,minmax(min(100%,16rem),1fr))}.ui-compare--2up{grid-template-columns: repeat( auto-fit,minmax(min(100%,max(16rem,(100% - var(--space-md)) / 2)),1fr) )}.ui-compare__col{align-content: start;display: grid;gap: var(--space-sm)}.ui-compare__head{color: var(--text-dim);font-family: var(--sans);font-size: var(--text-2xs);letter-spacing: 0;text-transform: none}.ui-print-only{display: none !important}.ui-print-exact{-webkit-print-color-adjust: exact;print-color-adjust: exact}@media print{@page{margin: 18mm}.ui-report{--report-padding-block: 0;color-scheme: light;--text: #111;--text-soft: #2a2a2a;--text-dim: #555;--panel: #fff;--panel-soft: #f7f7f7;--line: #d9d9d9;--line-strong: #b3b3b3;inline-size: auto;font-size: 11pt;padding: 0}.ui-report__decision-grid,.ui-report__actions{container-type: normal}.ui-report__cover{min-block-size: auto}.ui-report,.ui-report__section,.ui-report__figure,.ui-report__actions,.ui-evidence-ledger{display: block}.ui-report > * + *{margin-block-start: var(--report-gap)}.ui-report__section > * + *{margin-block-start: var(--space-md)}.ui-report__figure > * + *,.ui-evidence-ledger > * + *{margin-block-start: var(--space-sm)}.ui-report__cover,.ui-report__head,.ui-report__decision,.ui-report__summary,.ui-report__finding,.ui-report__evidence,.ui-report__figure,.ui-report__toc,.ui-claim,.ui-evidence-item,.ui-report__action,.ui-stat,.ui-statgrid > *,tr{break-inside: avoid}.ui-report__section-head{break-after: avoid}.ui-print-only{display: var(--print-display,block) !important}.ui-screen-only{display: none !important}.ui-break-before{break-before: page}.ui-break-after{break-after: page}.ui-keep{break-inside: avoid}}:root{--cat-1: #2a78d6;--cat-2: #eb6834;--cat-3: #1baf7a;--cat-4: #eda100;--cat-5: #e87ba4;--cat-6: #008300;--cat-7: #4a3aa7;--cat-8: #e34948;--cat-1-ink: #1467c3;--cat-2-ink: #bf3f00;--cat-3-ink: #007d4c;--cat-4-ink: #a45d00;--cat-5-ink: #b04972;--cat-6-ink: #007800;--cat-7-ink: #4a3aa7;--cat-8-ink: #c62b30;--chart-seq-1: #80b0e8;--chart-seq-2: #5598e7;--chart-seq-3: #2a78d6;--chart-seq-4: #1c5cab;--chart-seq-5: #104281;--chart-div-1: oklch(45% 0.14 255deg);--chart-div-2: oklch(62% 0.1 250deg);--chart-div-3: oklch(82% 0.05 245deg);--chart-div-4: oklch(90% 0.01 250deg);--chart-div-5: oklch(80% 0.07 60deg);--chart-div-6: oklch(66% 0.13 55deg);--chart-div-7: oklch(56% 0.15 45deg);--cat-1-tint: color-mix(in oklch,var(--cat-1) 16%,var(--panel));--cat-2-tint: color-mix(in oklch,var(--cat-2) 16%,var(--panel));--cat-3-tint: color-mix(in oklch,var(--cat-3) 16%,var(--panel));--cat-4-tint: color-mix(in oklch,var(--cat-4) 16%,var(--panel));--cat-5-tint: color-mix(in oklch,var(--cat-5) 16%,var(--panel));--cat-6-tint: color-mix(in oklch,var(--cat-6) 16%,var(--panel));--cat-7-tint: color-mix(in oklch,var(--cat-7) 16%,var(--panel));--cat-8-tint: color-mix(in oklch,var(--cat-8) 16%,var(--panel));--chart-1: var(--cat-1);--chart-2: var(--cat-2);--chart-3: var(--cat-3);--chart-4: var(--cat-4);--chart-5: var(--cat-5);--chart-6: var(--cat-6);--chart-7: var(--cat-7);--chart-8: var(--cat-8);--chart-pattern-size: 8px;--chart-pattern-ink: rgb(0 0 0 / 0.34);--chart-pattern-1: none;--chart-pattern-2: radial-gradient(circle at 50% 50%,var(--chart-pattern-ink) 1.4px,transparent 1.6px);--chart-pattern-3: radial-gradient(circle at 0 0,var(--chart-pattern-ink) 1.4px,transparent 1.6px);--chart-pattern-4: radial-gradient(circle at 25% 25%,var(--chart-pattern-ink) 1.2px,transparent 1.4px),radial-gradient(circle at 75% 75%,var(--chart-pattern-ink) 1.2px,transparent 1.4px);--chart-pattern-5: radial-gradient(circle at 50% 25%,var(--chart-pattern-ink) 1.2px,transparent 1.4px),radial-gradient(circle at 50% 75%,var(--chart-pattern-ink) 1.2px,transparent 1.4px);--chart-pattern-6: radial-gradient(circle at 25% 50%,var(--chart-pattern-ink) 1.2px,transparent 1.4px),radial-gradient(circle at 75% 50%,var(--chart-pattern-ink) 1.2px,transparent 1.4px);--chart-pattern-7: radial-gradient(circle at 25% 25%,var(--chart-pattern-ink) 1px,transparent 1.2px),radial-gradient(circle at 75% 25%,var(--chart-pattern-ink) 1px,transparent 1.2px),radial-gradient(circle at 25% 75%,var(--chart-pattern-ink) 1px,transparent 1.2px),radial-gradient(circle at 75% 75%,var(--chart-pattern-ink) 1px,transparent 1.2px);--chart-pattern-8: radial-gradient(circle at 50% 50%,transparent 1.2px,var(--chart-pattern-ink) 1.4px,transparent 2.2px)}@media (prefers-color-scheme: dark){:root:not([data-theme='light']){--cat-1: #3987e5;--cat-2: #d95926;--cat-3: #199e70;--cat-4: #c98500;--cat-5: #d55181;--cat-6: #008300;--cat-7: #9085e9;--cat-8: #e66767;--cat-1-ink: #4694f3;--cat-2-ink: #e86f42;--cat-3-ink: #27a677;--cat-4-ink: #cb8705;--cat-5-ink: #e46792;--cat-6-ink: #38a433;--cat-7-ink: #9187eb;--cat-8-ink: #eb6c6c;--chart-seq-1: #1b5298;--chart-seq-2: #256abf;--chart-seq-3: #3987e5;--chart-seq-4: #6da7ec;--chart-seq-5: #9ec5f4;--chart-div-1: oklch(70% 0.13 250deg);--chart-div-2: oklch(60% 0.12 252deg);--chart-div-3: oklch(48% 0.08 255deg);--chart-div-4: oklch(40% 0.01 250deg);--chart-div-5: oklch(58% 0.1 60deg);--chart-div-6: oklch(72% 0.13 58deg);--chart-div-7: oklch(80% 0.12 55deg);--chart-pattern-ink: rgb(255 255 255 / 0.42)}}:root[data-theme='dark']{--cat-1: #3987e5;--cat-2: #d95926;--cat-3: #199e70;--cat-4: #c98500;--cat-5: #d55181;--cat-6: #008300;--cat-7: #9085e9;--cat-8: #e66767;--cat-1-ink: #4694f3;--cat-2-ink: #e86f42;--cat-3-ink: #27a677;--cat-4-ink: #cb8705;--cat-5-ink: #e46792;--cat-6-ink: #38a433;--cat-7-ink: #9187eb;--cat-8-ink: #eb6c6c;--chart-seq-1: #1b5298;--chart-seq-2: #256abf;--chart-seq-3: #3987e5;--chart-seq-4: #6da7ec;--chart-seq-5: #9ec5f4;--chart-div-1: oklch(70% 0.13 250deg);--chart-div-2: oklch(60% 0.12 252deg);--chart-div-3: oklch(48% 0.08 255deg);--chart-div-4: oklch(40% 0.01 250deg);--chart-div-5: oklch(58% 0.1 60deg);--chart-div-6: oklch(72% 0.13 58deg);--chart-div-7: oklch(80% 0.12 55deg);--chart-pattern-ink: rgb(255 255 255 / 0.42)}@media print{:root:not([data-theme='light']){--cat-1: #2a78d6;--cat-2: #eb6834;--cat-3: #1baf7a;--cat-4: #eda100;--cat-5: #e87ba4;--cat-6: #008300;--cat-7: #4a3aa7;--cat-8: #e34948;--cat-1-ink: #1467c3;--cat-2-ink: #bf3f00;--cat-3-ink: #007d4c;--cat-4-ink: #a45d00;--cat-5-ink: #b04972;--cat-6-ink: #007800;--cat-7-ink: #4a3aa7;--cat-8-ink: #c62b30;--chart-seq-1: #80b0e8;--chart-seq-2: #5598e7;--chart-seq-3: #2a78d6;--chart-seq-4: #1c5cab;--chart-seq-5: #104281;--chart-div-1: oklch(45% 0.14 255deg);--chart-div-2: oklch(62% 0.1 250deg);--chart-div-3: oklch(82% 0.05 245deg);--chart-div-4: oklch(90% 0.01 250deg);--chart-div-5: oklch(80% 0.07 60deg);--chart-div-6: oklch(66% 0.13 55deg);--chart-div-7: oklch(56% 0.15 45deg);--chart-pattern-ink: rgb(0 0 0 / 0.34)}}.ui-figure{container: bronto-figure / inline-size;display: grid;gap: var(--space-sm);margin: 0;min-inline-size: 0}.ui-figure > *,.ui-figure__body > *,.ui-figure__stage > *{min-inline-size: 0}.ui-figure__caption{color: var(--text-dim);font-family: var(--sans);font-size: var(--text-sm);letter-spacing: 0;line-height: 1.5;text-transform: none}.ui-figure__body{align-items: start;display: grid;gap: var(--space-sm)}.ui-figure__body--key-right{grid-template-columns: minmax(0,1fr) minmax(min(100%,10rem),var(--figure-key-width,14rem))}.ui-figure__stage{--figure-max-inline: 42rem;--figure-min-block: 0px;display: grid;inline-size: min(100%,var(--figure-max-inline));margin-inline: auto;min-block-size: var(--figure-min-block);place-items: center;position: relative}.ui-figure__media{display: block;inline-size: 100%;max-inline-size: 100%}.ui-figure__stage > :is(canvas,img,picture,svg):not(.ui-figure__overlay){display: block;max-inline-size: 100%}.ui-figure__overlay{block-size: 100%;inline-size: 100%;inset: 0;overflow: visible;pointer-events: none;position: absolute}.ui-figure__key,.ui-figure__data{display: grid;gap: var(--space-xs)}.ui-figure__data{margin-block-start: var(--space-xs)}@container bronto-figure (max-width: 44rem){.ui-figure__body--key-right{grid-template-columns: 1fr}}@media print{.ui-figure{container-type: normal;break-inside: avoid}.ui-figure__body{display: block}.ui-figure__body > * + *{margin-block-start: var(--space-sm)}}.ui-annotation{--annotation-color: var(--accent);--annotation-line: var(--line-strong);--annotation-note-bg: var(--panel);--annotation-subject-fill: color-mix(in srgb,var(--annotation-color) 8%,transparent);--annotation-stroke-width: 1.5;color: var(--annotation-color);font-family: var(--sans);font-size: var(--text-xs);overflow: visible}.ui-annotation--muted{--annotation-color: var(--text-dim);--annotation-line: var(--line)}.ui-annotation--accent{--annotation-color: var(--accent);--annotation-line: var(--line-strong)}.ui-annotation--success{--annotation-color: var(--success)}.ui-annotation--warning{--annotation-color: var(--warning)}.ui-annotation--danger{--annotation-color: var(--danger)}.ui-annotation--info{--annotation-color: var(--info)}.ui-annotation__subject,.ui-annotation__connector,.ui-annotation__connector-end,.ui-annotation__note-line,.ui-annotation__badge{vector-effect: non-scaling-stroke}.ui-annotation__subject{fill: var(--annotation-subject-fill);stroke: var(--annotation-color);stroke-linejoin: miter;stroke-width: var(--annotation-stroke-width)}.ui-annotation__connector,.ui-annotation__note-line{fill: none;stroke: var(--annotation-line);stroke-linecap: square;stroke-linejoin: miter;stroke-opacity: 0.86;stroke-width: var(--annotation-stroke-width)}.ui-annotation__connector-end{fill: var(--annotation-line);stroke: none}.ui-annotation__note{color: var(--text-soft);fill: currentColor}.ui-annotation__note > rect{fill: var(--annotation-note-bg);stroke: var(--line);stroke-width: 1;vector-effect: non-scaling-stroke}.ui-annotation__title{fill: var(--text);font-size: var(--text-xs);font-weight: 700;letter-spacing: 0;paint-order: stroke fill;stroke: var(--annotation-note-bg);stroke-linejoin: round;stroke-width: 3;text-transform: none}.ui-annotation__label{fill: var(--text-soft);font-size: var(--text-xs);letter-spacing: 0;paint-order: stroke fill;stroke: var(--annotation-note-bg);stroke-linejoin: round;stroke-width: 3}.ui-annotation__badge{fill: var(--annotation-note-bg);stroke: var(--annotation-color);stroke-width: var(--annotation-stroke-width)}.ui-annotation--label .ui-annotation__subject,.ui-annotation--badge .ui-annotation__connector,.ui-annotation--badge .ui-annotation__note-line{display: none}.ui-annotation--callout .ui-annotation__note-line,.ui-annotation--elbow .ui-annotation__note-line,.ui-annotation--curve .ui-annotation__note-line{stroke: var(--annotation-color)}.ui-annotation--elbow .ui-annotation__connector{stroke-linejoin: bevel}.ui-annotation--curve .ui-annotation__connector{stroke-linecap: round}.ui-annotation--circle .ui-annotation__subject{stroke-dasharray: 0.01 4;stroke-linecap: round}.ui-annotation--rect .ui-annotation__subject{stroke-dasharray: 5 3}.ui-annotation--threshold .ui-annotation__subject{fill: none;stroke: var(--annotation-color);stroke-dasharray: 6 4}.ui-annotation--badge .ui-annotation__subject{fill: var(--annotation-color)}.ui-annotation--badge .ui-annotation__badge{fill: var(--annotation-color)}.ui-annotation--badge .ui-annotation__title,.ui-annotation--badge .ui-annotation__label{fill: var(--button-text);stroke: none}.ui-annotation--bracket .ui-annotation__subject,.ui-annotation--compare .ui-annotation__subject,.ui-annotation--axis .ui-annotation__subject,.ui-annotation--timeline .ui-annotation__subject{fill: none;stroke: var(--annotation-color);stroke-linecap: square}.ui-annotation--band .ui-annotation__subject{fill: var(--annotation-subject-fill);stroke: var(--annotation-color);stroke-dasharray: 5 3}.ui-annotation--slope .ui-annotation__subject{fill: none;stroke: var(--annotation-color);stroke-linecap: round}.ui-annotation--cluster .ui-annotation__subject{fill: var(--annotation-subject-fill);stroke: var(--annotation-color);stroke-dasharray: 0.01 5;stroke-linecap: round}.ui-annotation--evidence .ui-annotation__badge{fill: var(--annotation-note-bg);stroke: var(--annotation-color)}.ui-annotation--evidence .ui-annotation__title{fill: var(--annotation-color);stroke: none}.ui-annotation--focus{--annotation-stroke-width: 2;--annotation-subject-fill: color-mix(in srgb,var(--annotation-color) 14%,transparent)}@media (prefers-reduced-motion: no-preference){.ui-annotation--draw .ui-annotation__connector,.ui-annotation--draw .ui-annotation__note-line{animation: uiAnnotationDraw var(--duration-slow,600ms) var(--ease-out,ease-out) both;animation-delay: var(--annotation-delay,0ms);stroke-dasharray: var(--annotation-dash,360);stroke-dashoffset: var(--annotation-dash,360)}.ui-annotation--draw .ui-annotation__subject,.ui-annotation--draw .ui-annotation__badge{animation: uiAnnotationSubjectReveal var(--duration-slow,600ms) var(--ease-out,ease-out) both;animation-delay: var(--annotation-delay,0ms)}.ui-annotation--reveal .ui-annotation__note{animation: uiAnnotationReveal var(--duration-slow,600ms) var(--ease-out,ease-out) both;animation-delay: var(--annotation-delay,0ms)}.ui-annotation--pulse .ui-annotation__subject,.ui-annotation--pulse .ui-annotation__badge{animation: uiAnnotationPulse 1.6s var(--ease-out,ease-out) infinite;animation-delay: var(--annotation-delay,0ms);transform-box: fill-box;transform-origin: center}}@keyframes uiAnnotationDraw{to{stroke-dashoffset: 0}}@keyframes uiAnnotationSubjectReveal{from{opacity: 0}to{opacity: 1}}@keyframes uiAnnotationReveal{from{opacity: 0}to{opacity: 1}}@keyframes uiAnnotationPulse{50%{opacity: 0.62;transform: scale(1.06)}}@media print{.ui-annotation__subject,.ui-annotation__connector,.ui-annotation__note,.ui-annotation__note-line,.ui-annotation__badge{animation: none !important;opacity: 1;stroke-dashoffset: 0}.ui-annotation__subject,.ui-annotation__connector,.ui-annotation__note-line,.ui-annotation__badge{transform: none}.ui-annotation--draw .ui-annotation__connector,.ui-annotation--draw .ui-annotation__note-line{stroke-dasharray: none;stroke-dashoffset: 0}}@media (forced-colors: active){.ui-annotation{--annotation-color: CanvasText;--annotation-line: CanvasText;--annotation-note-bg: Canvas;--annotation-subject-fill: Canvas}}.ui-legend{color: var(--text-soft);display: flex;flex-wrap: wrap;font-family: var(--sans);font-size: var(--text-xs);gap: var(--space-2xs) var(--space-md);list-style: none;margin: 0;padding: 0}.ui-legend--vertical{flex-direction: column}.ui-legend--compact{font-size: var(--text-2xs);gap: var(--space-2xs) var(--space-sm)}.ui-legend__title{color: var(--text-dim);font-size: var(--text-xs);letter-spacing: 0;margin: 0;text-transform: none}.ui-legend__item{min-inline-size: 0;max-inline-size: 100%;align-items: center;color: inherit;display: inline-flex;gap: 0.45rem}.ui-legend__label{min-inline-size: 0;overflow-wrap: anywhere;color: inherit}.ui-legend__value{color: var(--text-dim);font-variant-numeric: tabular-nums;margin-inline-start: auto}.ui-legend__caption{color: var(--text-dim);font-size: var(--text-xs);letter-spacing: 0;text-transform: none}.ui-legend__swatch{background: var(--chart-color,var(--chart-1,var(--accent)));background-image: var(--chart-pattern,none);background-size: var(--chart-pattern-size,8px);block-size: 0.8rem;border: 1px solid var(--line-strong);flex: 0 0 auto;inline-size: 0.8rem}.ui-legend__swatch--circle{border-radius: 50%}.ui-legend__swatch--line{block-size: 0.2rem;border: 0;inline-size: 1.1rem}.ui-legend__symbol{block-size: 0.95rem;color: var(--chart-color,var(--chart-1,var(--accent)));flex: 0 0 auto;inline-size: 0.95rem}.ui-legend__swatch--1{--chart-color: var(--chart-1,var(--accent))}.ui-legend__swatch--2{--chart-color: var(--chart-2,var(--accent))}.ui-legend__swatch--3{--chart-color: var(--chart-3,var(--accent))}.ui-legend__swatch--4{--chart-color: var(--chart-4,var(--accent))}.ui-legend__swatch--5{--chart-color: var(--chart-5,var(--accent))}.ui-legend__swatch--6{--chart-color: var(--chart-6,var(--accent))}.ui-legend__swatch--7{--chart-color: var(--chart-7,var(--accent))}.ui-legend__swatch--8{--chart-color: var(--chart-8,var(--accent))}.ui-legend--gradient{display: grid;gap: var(--space-2xs)}.ui-legend__track{background: linear-gradient( 90deg in oklch,var(--chart-seq-1),var(--chart-seq-2),var(--chart-seq-3),var(--chart-seq-4),var(--chart-seq-5) );block-size: 0.7rem;border: 1px solid var(--line)}.ui-legend--diverging .ui-legend__track{background: linear-gradient( 90deg in oklch,var(--chart-div-1),var(--chart-div-2),var(--chart-div-3),var(--chart-div-4),var(--chart-div-5),var(--chart-div-6),var(--chart-div-7) )}.ui-legend__ticks{color: var(--text-dim);display: flex;font-size: var(--text-2xs);justify-content: space-between}.ui-legend__tick{font-variant-numeric: tabular-nums}.ui-legend--threshold{align-items: center;display: grid;gap: 0.35rem var(--space-sm);grid-template-columns: auto 1fr}.ui-legend--with-values{display: grid;gap: 0.35rem var(--space-md);grid-template-columns: auto 1fr auto}.ui-legend--with-values .ui-legend__item{min-inline-size: 0;max-inline-size: 100%;display: grid;grid-column: 1 / -1;grid-template-columns: subgrid}.ui-legend--with-values .ui-legend__value{margin-inline-start: 0;text-align: end}.ui-legend--interactive .ui-legend__item:is(button,[role='button']){background: none;border: 0;border-radius: var(--radius-sm);color: inherit;cursor: pointer;font: inherit;padding-block: 0.15rem;padding-inline: 0.3rem;text-align: start}.ui-legend--interactive .ui-legend__item:is(button,[role='button']):focus-visible{outline: 2px solid var(--accent);outline-offset: 2px}.ui-legend__item.is-inactive,.ui-legend__item[aria-pressed='false']{opacity: 0.45}.ui-legend__item.is-inactive .ui-legend__label,.ui-legend__item[aria-pressed='false'] .ui-legend__label{min-inline-size: 0;overflow-wrap: anywhere;text-decoration: line-through}@media (forced-colors: active){.ui-legend__swatch{border: 1px solid CanvasText;forced-color-adjust: none}.ui-legend__track{forced-color-adjust: none}.ui-legend__item.is-inactive,.ui-legend__item[aria-pressed='false']{opacity: 1}}@media print{.ui-legend__swatch,.ui-legend__track{-webkit-print-color-adjust: exact;print-color-adjust: exact}}.ui-mark{background-color: transparent;background-image: linear-gradient( 90deg,color-mix(in srgb,var(--mark-color,var(--line-strong)) 30%,transparent),color-mix(in srgb,var(--mark-color,var(--line-strong)) 30%,transparent) );background-repeat: no-repeat;background-size: 100% 100%;border-radius: 0.12em;-webkit-box-decoration-break: clone;box-decoration-break: clone;color: inherit;padding-block: 0.05em;padding-inline: 0.18em}.ui-mark--accent{--mark-color: var(--accent)}.ui-mark--success{--mark-color: var(--success)}.ui-mark--warning{--mark-color: var(--warning)}.ui-mark--danger{--mark-color: var(--danger)}.ui-mark--info{--mark-color: var(--info)}.ui-mark--muted{--mark-color: var(--text-dim)}.ui-mark--underline{background: none;padding: 0;text-decoration-color: var(--mark-color,var(--text-dim));text-decoration-line: underline;text-decoration-thickness: 0.12em;text-underline-offset: 0.18em}.ui-mark--box{background: none;border: 1px solid var(--mark-color,var(--line-strong));border-radius: var(--radius-sm)}.ui-mark--strike{background: none;padding: 0;text-decoration-color: var(--mark-color,var(--text-dim));text-decoration-line: line-through}@media (prefers-reduced-motion: no-preference){.ui-mark--draw:not(.ui-mark--underline,.ui-mark--box,.ui-mark--strike){animation: ui-mark-draw 0.6s var(--ease,ease) both}}@keyframes ui-mark-draw{from{background-size: 0% 100%}to{background-size: 100% 100%}}.ui-bracket-note{--mark-color: var(--line-strong);border-inline-start: 2px solid var(--mark-color);display: block;padding-inline-start: var(--space-md)}.ui-bracket-note__label{color: var(--mark-color);display: block;font-family: var(--mono);font-size: var(--text-2xs);letter-spacing: 0;margin-block-end: var(--space-2xs);text-transform: uppercase}.ui-bracket-note--accent{--mark-color: var(--accent)}.ui-bracket-note--success{--mark-color: var(--success)}.ui-bracket-note--warning{--mark-color: var(--warning)}.ui-bracket-note--danger{--mark-color: var(--danger)}.ui-bracket-note--info{--mark-color: var(--info)}@media (forced-colors: active){.ui-mark:not(.ui-mark--underline,.ui-mark--box,.ui-mark--strike){text-decoration-line: underline}}@media print{.ui-mark{-webkit-print-color-adjust: exact;background-size: 100% 100%;print-color-adjust: exact}.ui-mark--draw{animation: none}}.ui-connector{--connector-color: var(--line-strong);color: var(--connector-color);inset: 0;overflow: visible;pointer-events: none;position: absolute}.ui-connector__path{fill: none;stroke: var(--connector-color);stroke-linecap: round;stroke-linejoin: round;stroke-width: var(--connector-width,1.5);vector-effect: non-scaling-stroke}.ui-connector__end{fill: var(--connector-color);stroke: none}.ui-connector--dashed .ui-connector__path{stroke-dasharray: 4 3}.ui-connector--accent{--connector-color: var(--accent)}.ui-connector--muted{--connector-color: var(--line)}.ui-connector--success{--connector-color: var(--success)}.ui-connector--warning{--connector-color: var(--warning)}.ui-connector--danger{--connector-color: var(--danger)}.ui-connector--info{--connector-color: var(--info)}@media (prefers-reduced-motion: no-preference){.ui-connector--draw .ui-connector__path{animation: ui-connector-draw 0.6s ease both;stroke-dasharray: 1}}@keyframes ui-connector-draw{from{stroke-dashoffset: 1}to{stroke-dashoffset: 0}}@media (forced-colors: active){.ui-connector__path{stroke: CanvasText}.ui-connector__end{fill: CanvasText}}@media print{.ui-connector__path,.ui-connector__end{-webkit-print-color-adjust: exact;print-color-adjust: exact}.ui-connector--draw .ui-connector__path{animation: none;stroke-dasharray: none;stroke-dashoffset: 0}}.ui-spotlight{--spot-x: 50%;--spot-y: 50%;--spot-w: 0px;--spot-h: 0px;--spot-pad: 8px;--spot-radius: var(--radius-md);--spot-backdrop: color-mix(in srgb,#000 55%,transparent);inset: 0;pointer-events: none;position: fixed;z-index: var(--z-overlay,1000)}.ui-spotlight__hole{background: transparent;block-size: calc(var(--spot-h) + var(--spot-pad) * 2);border-radius: var(--spot-radius);box-shadow: 0 0 0 100vmax var(--spot-backdrop);inline-size: calc(var(--spot-w) + var(--spot-pad) * 2);inset-block-start: 0;inset-inline-start: 0;position: absolute;transform: translate( calc(var(--spot-x) - var(--spot-pad)),calc(var(--spot-y) - var(--spot-pad)) );transition: transform 0.2s ease,inline-size 0.2s ease,block-size 0.2s ease}@media (prefers-reduced-motion: reduce){.ui-spotlight__hole{transition: none}}@media (prefers-reduced-transparency: reduce){.ui-spotlight{--spot-backdrop: var(--surface-1)}}.ui-spotlight--ring .ui-spotlight__hole{outline: 2px solid var(--accent);outline-offset: 0}.ui-tour-note{background: var(--panel);border: 1px solid var(--line);border-radius: var(--radius-md);box-shadow: var(--shadow-raised);color: var(--text);display: grid;gap: var(--space-sm);max-inline-size: min(22rem,calc(100vw - 2rem));padding: var(--space-md);pointer-events: auto}.ui-tour-note__step{color: var(--text-dim);font-family: var(--mono);font-size: var(--text-2xs);letter-spacing: 0;text-transform: uppercase}.ui-tour-note__title{color: var(--text);font-size: var(--text-lg);font-weight: 600;margin: 0}.ui-tour-note__body{color: var(--text-soft);margin: 0}.ui-tour-note__actions{display: flex;gap: var(--space-sm);justify-content: flex-end}@media (forced-colors: active){.ui-spotlight__hole{outline: 2px solid CanvasText}}.ui-crosshair{--crosshair-x: 0;--crosshair-y: 0;--crosshair-color: var(--accent);--crosshair-readout-gap: 0.35rem;--crosshair-readout-x: var(--crosshair-readout-gap);--crosshair-readout-y: var(--crosshair-readout-gap);inset: 0;opacity: 0;pointer-events: none;position: absolute;transition: opacity 0.12s ease}.ui-crosshair.is-active{opacity: 1}.ui-crosshair[data-readout-inline='before']{--crosshair-readout-x: calc(-100% - var(--crosshair-readout-gap))}.ui-crosshair[data-readout-block='above']{--crosshair-readout-y: calc(-100% - var(--crosshair-readout-gap))}.ui-crosshair:dir(rtl){--crosshair-readout-x: calc(100% + var(--crosshair-readout-gap))}.ui-crosshair:dir(rtl)[data-readout-inline='before']{--crosshair-readout-x: calc(-1 * var(--crosshair-readout-gap))}@media (prefers-reduced-motion: reduce){.ui-crosshair{transition: none}}.ui-crosshair--muted{--crosshair-color: var(--line-strong)}.ui-crosshair__line{background: var(--crosshair-color);position: absolute}.ui-crosshair__line--x{inline-size: 1px;inset-block: 0;inset-inline-start: var(--crosshair-x)}.ui-crosshair__line--y{block-size: 1px;inset-block-start: var(--crosshair-y);inset-inline: 0}.ui-crosshair__badge{background: var(--crosshair-color);border-radius: var(--radius-sm);color: var(--button-text);font-family: var(--mono);font-size: var(--text-2xs);padding-block: 0.05rem;padding-inline: 0.3rem;position: absolute;white-space: nowrap}.ui-crosshair--muted .ui-crosshair__badge{background: var(--panel);border: 1px solid var(--line-strong);color: var(--text)}.ui-crosshair .ui-readout{background: var(--panel);border: 1px solid var(--line);border-radius: var(--radius-sm);box-shadow: var(--shadow-raised);color: var(--text);font-family: var(--mono);font-size: var(--text-xs);inset-block-start: var(--crosshair-y);inset-inline-start: var(--crosshair-x);max-inline-size: calc(100% - var(--crosshair-readout-gap) * 2);overflow: hidden;padding-block: 0.2rem;padding-inline: 0.4rem;pointer-events: none;position: absolute;text-overflow: ellipsis;transform: translate(var(--crosshair-readout-x),var(--crosshair-readout-y));white-space: nowrap}@media (forced-colors: active){.ui-crosshair__line{background: CanvasText}}.ui-sel{transition: opacity 0.12s ease,outline-color 0.12s ease}@media (prefers-reduced-motion: reduce){.ui-sel{transition: none}}.ui-sel--on{outline: 2px solid var(--accent);outline-offset: 1px}.ui-sel--off{opacity: 0.35}.ui-sel--maybe{outline: 1px dashed var(--accent);outline-offset: 1px}@media (forced-colors: active){.ui-sel--on{outline-color: Highlight}}.ui-citation,.ui-source-card,.ui-provenance{--src-tone: var(--text-dim)}.ui-src{--src-tone: var(--text-dim);align-items: center;background: var(--panel-soft);border: 1px solid color-mix(in srgb,var(--src-tone) 45%,var(--line));border-radius: var(--radius-pill);color: var(--text-soft);display: inline-flex;font-size: var(--text-2xs);gap: 0.35rem;padding: 0.08rem 0.55rem;vertical-align: baseline}.ui-src::before{background: var(--src-tone);border-radius: 50%;block-size: 0.45rem;content: '';flex: none;inline-size: 0.45rem;print-color-adjust: exact}.ui-src--verified{--src-tone: var(--success)}.ui-src--reviewed{--src-tone: var(--accent)}.ui-src--generated{--src-tone: var(--info)}.ui-src--unverified{--src-tone: var(--text-dim)}.ui-src--stale{--src-tone: var(--warning)}.ui-src--conflict{--src-tone: var(--danger)}.ui-citation{color: var(--accent-text);font-family: var(--mono);font-size: max(0.72em,var(--text-2xs));font-weight: 600;text-decoration: none;vertical-align: super}.ui-citation:hover{text-decoration: underline}.ui-citation--chip{align-items: center;background: var(--panel-soft);border: 1px solid var(--line);border-radius: var(--radius-pill);color: var(--text-soft);display: inline-flex;font-size: var(--text-2xs);gap: 0.35rem;padding: 0.08rem 0.55rem;vertical-align: baseline}.ui-citation--chip::before{background: var(--src-tone);border-radius: 50%;block-size: 0.45rem;content: '';inline-size: 0.45rem;print-color-adjust: exact}.ui-source-list{display: grid;gap: var(--space-sm);list-style: none;margin: 0;min-inline-size: 0;padding: 0}.ui-source-list__item{margin: 0;min-inline-size: 0}.ui-source-card{background: var(--panel-soft);border: 1px solid var(--line);border-inline-start: 2px solid var(--src-tone);border-radius: var(--radius-md);display: grid;gap: 0.3rem;min-inline-size: 0;padding: 0.75rem 0.9rem;print-color-adjust: exact}.ui-source-card:target,.ui-source-card.is-source-active{box-shadow: 0 0 0 3px color-mix(in srgb,var(--src-tone) 22%,transparent);outline: 2px solid var(--src-tone);outline-offset: 2px}.ui-source-card > *{min-inline-size: 0}.ui-source-card__title{color: var(--text);font-size: var(--text-sm);font-weight: 600;margin: 0;overflow-wrap: break-word}.ui-source-card__origin{color: var(--text-soft);font-family: var(--mono);font-size: var(--text-2xs);letter-spacing: var(--tracking-wide);overflow-wrap: anywhere}.ui-source-card__time{color: var(--text-dim);font-family: var(--mono);font-size: var(--text-2xs);overflow-wrap: anywhere}.ui-source-card__excerpt{color: var(--text-soft);margin: 0;overflow-wrap: anywhere}.ui-source-card__actions{display: flex;flex-wrap: wrap;gap: 0.5rem;margin-block-start: 0.2rem}.ui-provenance{align-items: center;color: var(--text-dim);display: inline-flex;flex-wrap: wrap;font-family: var(--mono);font-size: var(--text-2xs);gap: 0.3rem 0.75rem;letter-spacing: var(--tracking-wide)}.ui-provenance__item{align-items: center;display: inline-flex;gap: 0.35rem}.ui-provenance__item::before{background: var(--src-tone);border-radius: 50%;block-size: 0.45rem;content: '';inline-size: 0.45rem;print-color-adjust: exact}@media (forced-colors: active){.ui-citation--chip::before,.ui-provenance__item::before,.ui-src::before{background: CanvasText}.ui-source-card{border-inline-start-color: CanvasText}}@media print{.ui-prose .ui-citation[href]::after,.ui-citation[href]::after{content: none}.ui-source-card,.ui-source-list__item{break-inside: avoid}}.ui-generated{background: color-mix(in srgb,var(--accent) 4%,transparent);border: 1px solid var(--line);border-inline-start: 2px solid var(--accent);border-radius: var(--radius-md);display: grid;gap: var(--space-xs);padding: 0.85rem 1rem;print-color-adjust: exact}.ui-generated__label{align-items: center;color: var(--text-dim);display: inline-flex;font-family: var(--sans);font-size: var(--text-xs);gap: 0.4rem;letter-spacing: 0;text-transform: none}.ui-origin-label{align-items: center;border: 1px solid var(--line);border-radius: var(--radius-pill);color: var(--text-soft);display: inline-flex;font-family: var(--sans);font-size: var(--text-xs);gap: 0.35rem;letter-spacing: 0;padding: 0.08rem 0.55rem;text-transform: none}.ui-origin-label--ai{border-color: var(--accent);color: var(--accent-text)}.ui-reasoning{color: var(--text-dim);font-size: var(--text-sm)}.ui-reasoning > summary{color: var(--text-soft);cursor: pointer;font-family: var(--sans);font-size: var(--text-xs);letter-spacing: 0;text-transform: none}.ui-reasoning__body{margin-block-start: var(--space-xs)}.ui-tool-log{display: grid;gap: var(--space-2xs)}.ui-tool-call{border: 1px solid var(--line);border-radius: var(--radius-sm);font-family: var(--mono);font-size: var(--text-2xs)}.ui-tool-call > summary{align-items: center;cursor: pointer;display: flex;gap: 0.5rem;padding: 0.4rem 0.6rem}.ui-tool-call__name{color: var(--text)}.ui-tool-call__status{color: var(--text-dim);margin-inline-start: auto}.ui-tool-call__body{border-block-start: 1px solid var(--line);color: var(--text-soft);margin: 0;overflow-x: auto;padding: 0.5rem 0.6rem;white-space: pre-wrap}@media (pointer: coarse){.ui-reasoning > summary,.ui-tool-call > summary{min-block-size: var(--tap-target)}}@media (forced-colors: active){.ui-generated{border-inline-start-color: CanvasText}}.ui-state{--state-tone: var(--text-dim);align-items: center;display: inline-flex;font-size: var(--text-sm);gap: 0.4rem}.ui-state::before{background: var(--state-tone);border-radius: 50%;block-size: 0.5rem;content: '';flex: none;inline-size: 0.5rem;print-color-adjust: exact}.ui-state__label{color: var(--text)}.ui-state__detail{color: var(--text-dim);font-size: var(--text-2xs)}.ui-state--busy::before{animation: uiStatePulse 1.1s ease-in-out infinite}@keyframes uiStatePulse{50%{opacity: 0.3}}@media (prefers-reduced-motion: reduce){.ui-state--busy::before{animation: none}}.ui-state--saving{--state-tone: var(--accent)}.ui-state--saved{--state-tone: var(--success)}.ui-state--queued{--state-tone: var(--text-dim)}.ui-state--offline{--state-tone: var(--warning)}.ui-state--stale{--state-tone: var(--warning)}.ui-state--conflict{--state-tone: var(--danger)}.ui-state--error{--state-tone: var(--danger)}.ui-state--locked{--state-tone: var(--text-dim)}.ui-state--reviewed{--state-tone: var(--success)}.ui-state--needs-review{--state-tone: var(--warning)}.ui-syncbar{align-items: center;border-block-end: 1px solid var(--line);display: flex;flex-wrap: wrap;gap: var(--space-sm) var(--space-md);justify-content: space-between;padding-block: var(--space-xs)}.ui-job{--job-progress: 0%;--job-tone: var(--text-dim);background: var(--panel);border: 1px solid var(--line);border-inline-start: 2px solid var(--job-tone);border-radius: var(--radius-md);display: grid;gap: var(--space-sm);padding: var(--space-md)}.ui-job__head{align-items: start;display: flex;flex-wrap: wrap;gap: var(--space-xs) var(--space-md);justify-content: space-between}.ui-job__title{color: var(--text);font-family: var(--display);font-size: var(--text-sm);letter-spacing: var(--tracking-wide);margin: 0;text-transform: uppercase}.ui-job__meta{color: var(--text-dim);font-family: var(--mono);font-size: var(--text-2xs);letter-spacing: var(--tracking-wide);text-transform: uppercase}.ui-job__body{color: var(--text-soft);margin: 0}.ui-job__progress{background: var(--panel-soft);border: 1px solid var(--line);border-radius: var(--radius-pill);block-size: 0.5rem;overflow: hidden}.ui-job__bar{background: var(--job-tone);block-size: 100%;display: block;inline-size: clamp(0%,var(--job-progress),100%);min-inline-size: 1px;print-color-adjust: exact;transition: inline-size var(--duration-base) var(--ease-standard)}.ui-job__actions{align-items: center;display: flex;flex-wrap: wrap;gap: var(--space-xs)}.ui-job--compact{gap: var(--space-xs);padding: var(--space-sm)}.ui-job--queued{--job-tone: var(--text-dim)}.ui-job--running{--job-tone: var(--accent)}.ui-job--blocked{--job-tone: var(--warning)}.ui-job--failed{--job-tone: var(--danger)}.ui-job--complete{--job-tone: var(--success)}.ui-job--running .ui-job__bar{background-image: linear-gradient( 90deg,var(--job-tone),color-mix(in srgb,var(--job-tone) 62%,var(--panel)) )}@media (prefers-reduced-motion: reduce){.ui-job__bar{transition: none}}.ui-severity,.ui-severity-row,.ui-severity-dot,.ui-severity-tone,.ui-timestrip__event{--severity-tone: var(--text-dim)}:is(.ui-severity,.ui-severity-row,.ui-severity-dot,.ui-severity-tone,.ui-timestrip__event):is( [data-level='critical'],[data-level='error'] ){--severity-tone: var(--danger)}:is(.ui-severity,.ui-severity-row,.ui-severity-dot,.ui-severity-tone,.ui-timestrip__event)[data-level='warning']{--severity-tone: var(--warning)}:is(.ui-severity,.ui-severity-row,.ui-severity-dot,.ui-severity-tone,.ui-timestrip__event)[data-level='notice']{--severity-tone: var(--info)}:is(.ui-severity,.ui-severity-row,.ui-severity-dot,.ui-severity-tone,.ui-timestrip__event)[data-level='ok']{--severity-tone: var(--success)}.ui-severity{background: color-mix(in oklch,var(--severity-tone) 16%,transparent);border-radius: var(--radius-pill);color: var(--severity-tone);display: inline-block;flex: none;font-family: var(--mono);font-size: var(--text-2xs);font-weight: 700;letter-spacing: var(--tracking-wide);line-height: 1.2;padding: 0.1rem 0.4rem;text-transform: uppercase}.ui-severity[data-level='critical']{background: var(--danger);color: var(--button-text)}.ui-severity[data-level='unknown']{background: none;border: 1px solid var(--line-strong);padding-block: calc(0.1rem - 1px)}.ui-severity-dot{background: var(--severity-tone);border-radius: 50%;block-size: 0.5rem;display: inline-block;flex: none;inline-size: 0.5rem;print-color-adjust: exact}.ui-severity-dot[data-level='unknown']{background: none;box-shadow: inset 0 0 0 1px var(--line-strong)}.ui-severity-row{align-items: baseline;border-block-end: 1px solid var(--line);border-inline-start: 2px solid var(--severity-tone);display: flex;gap: var(--space-xs);padding: var(--space-2xs) var(--space-xs)}.ui-severity-row:last-child{border-block-end: 0}.ui-severity-row__title{flex: 1 1 auto;min-inline-size: 0;overflow: hidden;text-overflow: ellipsis;white-space: nowrap}.ui-severity-row__meta{color: var(--text-dim);flex: none;font-family: var(--mono);font-size: var(--text-2xs)}.ui-timestrip{block-size: 1.4rem;display: block;inline-size: 100%;position: relative}.ui-timestrip__axis{background: var(--line);block-size: 1px;inset-block-end: 0.35rem;inset-inline: 0;position: absolute}.ui-timestrip__now{border-inline-end: 1px dashed var(--text-dim);inset-block: 0.1rem 0.25rem;inset-inline-end: 0;position: absolute}.ui-timestrip__event{background: var(--severity-tone);block-size: 0.4rem;border-radius: var(--radius-pill);inline-size: 0.4rem;inset-block-end: 0.55rem;inset-inline-start: calc(clamp(0,var(--at,0),1) * 100%);position: absolute;translate: -50% 0}.ui-timestrip__event[data-outside]{opacity: 0.55}@media (forced-colors: active){.ui-timestrip__event{background: CanvasText}}@media (forced-colors: active){.ui-state::before{background: CanvasText}.ui-job{border-inline-start-color: CanvasText}.ui-job__bar{background: CanvasText}.ui-severity{border: 1px solid currentColor}.ui-severity-row{border-inline-start-color: CanvasText}.ui-severity-dot{background: CanvasText}}@property --lo{syntax: '<number>';inherits: true;initial-value: 0}@property --hi{syntax: '<number>';inherits: true;initial-value: 1}.ui-interval{--lo: 0;--hi: 1;display: grid;gap: 0.35rem;inline-size: 100%;min-inline-size: 0}.ui-interval__track{background: var(--surface-4);block-size: 0.7rem;border: 1px solid var(--line);border-radius: var(--radius-pill);min-inline-size: 8rem;position: relative}.ui-interval__range{background: color-mix(in srgb,var(--accent) 26%,transparent);border: 1px solid color-mix(in srgb,var(--accent) 58%,var(--line));border-radius: var(--radius-pill);inline-size: max(2px,calc((max(var(--lo),var(--hi)) - min(var(--lo),var(--hi))) * 100%));inset-block: 18%;inset-inline-start: calc(min(var(--lo),var(--hi)) * 100%);position: absolute}.ui-interval__point{background: var(--text);border: 2px solid var(--panel);border-radius: 50%;block-size: 0.72rem;box-shadow: 0 0 0 1px var(--line-strong);inline-size: 0.72rem;inset-block-start: 50%;inset-inline-start: calc(var(--v,var(--lo)) * 100%);position: absolute;transform: translate(-50%,-50%)}.ui-interval:dir(rtl) .ui-interval__point{transform: translate(50%,-50%)}.ui-interval__label,.ui-interval__bounds{color: var(--text-dim);font-family: var(--mono);font-size: var(--text-2xs);letter-spacing: 0}.ui-interval__label{color: var(--text-soft)}.ui-interval__bounds{display: flex;gap: var(--space-sm);justify-content: space-between}@media (forced-colors: active){.ui-interval__track,.ui-interval__range,.ui-interval__point{border-color: CanvasText}.ui-interval__range,.ui-interval__point{background: CanvasText}}@media print{.ui-interval__range,.ui-interval__point{-webkit-print-color-adjust: exact;print-color-adjust: exact}}.ui-clamp{--clamp-lines: 4;display: grid;gap: var(--space-2xs);min-inline-size: 0;position: relative}.ui-clamp__body{-webkit-box-orient: vertical;-webkit-line-clamp: var(--clamp-lines);display: -webkit-box;line-clamp: var(--clamp-lines);mask-image: linear-gradient(to bottom,#000 72%,transparent 100%);overflow: hidden}.ui-clamp:has(> .ui-clamp__toggle:checked) .ui-clamp__body{-webkit-line-clamp: unset;display: block;line-clamp: none;mask-image: none}.ui-clamp__toggle{block-size: 1px;clip-path: inset(50%);inline-size: 1px;overflow: hidden;position: absolute;white-space: nowrap}.ui-clamp__control{color: var(--accent-text);cursor: pointer;font-family: var(--mono);font-size: var(--text-2xs);inline-size: max-content;letter-spacing: var(--tracking-wide);text-decoration: underline;text-decoration-color: color-mix(in srgb,var(--accent) 55%,transparent);text-underline-offset: 0.2rem;text-transform: uppercase}.ui-clamp__toggle:focus-visible + .ui-clamp__body + .ui-clamp__control{outline: 2px solid var(--focus-ring);outline-offset: 2px}.ui-clamp__less{display: none}.ui-clamp:has(> .ui-clamp__toggle:checked) .ui-clamp__more{display: none}.ui-clamp:has(> .ui-clamp__toggle:checked) .ui-clamp__less{display: inline}@media (hover: hover){.ui-clamp__control:hover{text-decoration-color: currentColor}}@media print{.ui-clamp__body{-webkit-line-clamp: unset;display: block;line-clamp: none;mask-image: none}.ui-clamp__toggle,.ui-clamp__control{display: none}}.ui-highlights{--highlight-evidence: var(--accent-soft);--highlight-search: var(--warning-soft);--highlight-current: color-mix(in srgb,var(--accent) 22%,transparent)}.ui-highlights::highlight(bronto-evidence){background-color: var(--highlight-evidence);color: inherit;text-decoration-color: var(--accent);text-decoration-line: underline;text-decoration-thickness: 0.1em;text-underline-offset: 0.18em}.ui-highlights::highlight(bronto-search){background-color: var(--highlight-search);color: inherit}.ui-highlights::highlight(bronto-current){background-color: var(--highlight-current);color: var(--text)}@media (forced-colors: active){.ui-highlights::highlight(bronto-evidence),.ui-highlights::highlight(bronto-search),.ui-highlights::highlight(bronto-current){background-color: Highlight;color: HighlightText;text-decoration-color: HighlightText}}@media print{.ui-highlights{-webkit-print-color-adjust: exact;print-color-adjust: exact}}.ui-diff{--diff-add-bg: color-mix(in srgb,var(--success) 14%,transparent);--diff-remove-bg: color-mix(in srgb,var(--danger) 14%,transparent);--diff-add-ink: var(--success);--diff-remove-ink: var(--danger);border: 1px solid var(--line);border-radius: var(--radius-sm);display: grid;font-family: var(--mono);font-size: var(--text-xs);grid-template-columns: auto auto minmax(0,1fr);line-height: 1.6;overflow: hidden}.ui-diff--split{grid-template-columns: 1fr 1fr}.ui-diff__pane{display: grid;grid-template-columns: auto minmax(0,1fr);min-inline-size: 0}.ui-diff--split > .ui-diff__pane + .ui-diff__pane{border-inline-start: 1px solid var(--line)}.ui-diff__hunk{display: contents}.ui-diff__row{display: contents}.ui-diff__head{background: var(--surface-2);color: var(--text-dim);grid-column: 1 / -1;min-inline-size: 0;overflow-wrap: anywhere;padding: var(--space-2xs) var(--space-sm)}.ui-diff__ln{align-self: start;color: var(--text-dim);font-variant-numeric: tabular-nums;padding: 0 var(--space-sm);text-align: end;-webkit-user-select: none;user-select: none}.ui-diff__code{overflow-wrap: anywhere;padding: 0 var(--space-sm);white-space: pre-wrap}.ui-diff__code::before{color: var(--diff-tint,var(--text-dim));content: var(--diff-sign,'\00a0');display: inline-block;inline-size: 1ch;margin-inline-end: var(--space-2xs);-webkit-user-select: none;user-select: none}.ui-diff__row--add{--diff-sign: '+';--diff-tint: var(--diff-add-ink)}.ui-diff__row--remove{--diff-sign: '\2212';--diff-tint: var(--diff-remove-ink)}.ui-diff__row--context{--diff-sign: '\00a0'}.ui-diff__row--add > .ui-diff__ln,.ui-diff__row--add > .ui-diff__code{background: var(--diff-add-bg)}.ui-diff__row--remove > .ui-diff__ln,.ui-diff__row--remove > .ui-diff__code{background: var(--diff-remove-bg)}@media (forced-colors: active){.ui-diff__row--add > .ui-diff__code,.ui-diff__row--remove > .ui-diff__code{border-inline-start: 2px solid currentColor}}@media print{.ui-diff__head,.ui-diff__row--add > .ui-diff__ln,.ui-diff__row--add > .ui-diff__code,.ui-diff__row--remove > .ui-diff__ln,.ui-diff__row--remove > .ui-diff__code{-webkit-print-color-adjust: exact;print-color-adjust: exact}}.ui-code{border: 1px solid var(--line);border-radius: var(--radius-sm);font-family: var(--mono);font-size: var(--text-xs);overflow: hidden}.ui-code__head{background: var(--surface-2);border-block-end: 1px solid var(--line);color: var(--text-dim);display: flex;gap: var(--space-sm);justify-content: space-between;min-inline-size: 0;overflow: hidden;padding: var(--space-2xs) var(--space-sm);text-overflow: ellipsis;white-space: nowrap}.ui-code__head > *{min-inline-size: 0;overflow: hidden;text-overflow: ellipsis}.ui-code__head > :last-child{flex-shrink: 0}.ui-code__body{counter-reset: ui-code-ln;margin: 0;overflow-wrap: anywhere;padding: var(--space-sm) 0;white-space: pre-wrap}.ui-code__line{display: block;padding-inline: var(--space-sm)}.ui-code--numbered .ui-code__line{padding-inline-start: 0}.ui-code--numbered .ui-code__line::before{color: var(--text-dim);content: counter(ui-code-ln);counter-increment: ui-code-ln;display: inline-block;inline-size: 3ch;margin-inline-end: var(--space-sm);text-align: end;-webkit-user-select: none;user-select: none}.ui-code__line--add{background: color-mix(in srgb,var(--success) 14%,transparent)}.ui-code__line--remove{background: color-mix(in srgb,var(--danger) 14%,transparent)}.ui-code__line--hl{background: color-mix(in srgb,var(--accent) 14%,transparent)}@media (forced-colors: active){.ui-code__line--add,.ui-code__line--remove,.ui-code__line--hl{border-inline-start: 3px solid currentColor}}@media print{.ui-code__head,.ui-code__line--add,.ui-code__line--remove,.ui-code__line--hl{-webkit-print-color-adjust: exact;print-color-adjust: exact}}.ui-spark{align-items: flex-end;block-size: 1em;display: inline-flex;gap: 1px;inline-size: max-content;vertical-align: -0.15em}.ui-spark__bar{background: currentColor;block-size: max(1px,calc(var(--v,0) * 100%));border-radius: 0.5px;flex: 0 0 0.25em;min-inline-size: 2px}.ui-spark__bar--accent{background: var(--accent)}.ui-spark__bar--pos{background: var(--success)}.ui-spark__bar--neg{background: var(--danger)}.ui-spark--dots .ui-spark__bar{--_dot: var(--spark-dot,0.16em);--_step: calc(var(--_dot) + var(--spark-dot-gap,0.06em));border-radius: 0;-webkit-mask: repeating-linear-gradient(to top,#000 0 var(--_dot),transparent var(--_dot) var(--_step));mask: repeating-linear-gradient(to top,#000 0 var(--_dot),transparent var(--_dot) var(--_step))}@media (forced-colors: active){.ui-spark__bar{background: CanvasText}}@media print{.ui-spark__bar{-webkit-print-color-adjust: exact;print-color-adjust: exact}}@property --band-lo{syntax: '<number>';inherits: true;initial-value: 0.5}@property --band-hi{syntax: '<number>';inherits: true;initial-value: 0.8}@property --t{syntax: '<number>';inherits: true;initial-value: 0}.ui-bullet{--band-lo: 0.5;--band-hi: 0.8;background: linear-gradient( to right,var(--surface-4) 0 calc(var(--band-lo) * 100%),var(--surface-3) calc(var(--band-lo) * 100%) calc(var(--band-hi) * 100%),var(--surface-2) calc(var(--band-hi) * 100%) 100% );block-size: 1.25rem;border-radius: var(--radius-sm);inline-size: 100%;position: relative}.ui-bullet:dir(rtl){background: linear-gradient( to left,var(--surface-4) 0 calc(var(--band-lo) * 100%),var(--surface-3) calc(var(--band-lo) * 100%) calc(var(--band-hi) * 100%),var(--surface-2) calc(var(--band-hi) * 100%) 100% )}.ui-bullet__measure{background: var(--text);border-radius: var(--radius-sm);inline-size: max(calc(sign(var(--v,1)) * 2px),calc(var(--v,0) * 100%));inset-block: 30%;inset-inline-start: 0;position: absolute}.ui-bullet__measure--accent{background: var(--accent)}.ui-bullet__measure--pos{background: var(--success)}.ui-bullet__measure--neg{background: var(--danger)}.ui-bullet__target{background: var(--text);inline-size: 2px;inset-block: 8%;inset-inline-start: calc(var(--t,0) * 100%);position: absolute;transform: translateX(-50%)}.ui-bullet:dir(rtl) .ui-bullet__target{transform: translateX(50%)}.ui-bullet__label{color: var(--text-dim);display: flex;font-family: var(--mono);font-size: var(--text-2xs);gap: var(--space-sm);justify-content: space-between;letter-spacing: var(--tracking-wide);margin-block-start: 0.3rem}@media (forced-colors: active){.ui-bullet{border: 1px solid CanvasText}.ui-bullet__measure,.ui-bullet__target{background: CanvasText}}@media print{.ui-bullet{-webkit-print-color-adjust: exact;print-color-adjust: exact}}:root{--sidenote-width: 12rem;--sidenote-gap: 2rem}.ui-sidenote,.ui-marginnote{border-inline-start: 2px solid var(--line);color: var(--text-dim);display: block;font-size: var(--text-2xs);line-height: 1.5;margin-block: var(--space-2xs);padding-inline-start: var(--space-md)}.ui-sidenote__ref{color: var(--accent-text);counter-increment: ui-sidenote;font-size: 0.75em;vertical-align: super}.ui-sidenote__ref::after{content: counter(ui-sidenote)}.ui-sidenote::before{color: var(--accent-text);content: counter(ui-sidenote) '. '}@media (min-width: 60rem){.ui-sidenote,.ui-marginnote{border-inline-start: 0;clear: inline-end;float: inline-end;inline-size: var(--sidenote-width);margin-block: 0;margin-inline-end: calc(-1 * (var(--sidenote-width) + var(--sidenote-gap)));padding-inline-start: 0;text-align: start}}.ui-textref{--textref-highlight: var(--accent-soft);color: var(--accent-text);text-decoration: underline;text-decoration-style: dotted;text-underline-offset: 0.2em}.ui-textref::before{content: '\201F';margin-inline-end: 0.15em}@media (hover: hover){.ui-textref:hover{text-decoration-style: solid}}.ui-textref:focus-visible{outline: 2px solid var(--focus-ring);outline-offset: 2px}::target-text{background-color: var(--textref-highlight,var(--accent-soft));color: var(--text)}@media (forced-colors: active){::target-text{background-color: Highlight;color: HighlightText}}.ui-term{background: none;border: 0;color: inherit;cursor: help;font: inherit;padding: 0;text-decoration: underline;text-decoration-color: var(--line-strong);text-decoration-style: dotted;text-underline-offset: 0.2em}@media (hover: hover){.ui-term:hover{text-decoration-color: var(--accent)}}.ui-term:focus-visible{outline: 2px solid var(--focus-ring);outline-offset: 2px}.ui-def{background: var(--surface-raised);border: 1px solid var(--line);border-radius: var(--radius-md);box-shadow: var(--shadow-raised);color: var(--text);font-family: var(--sans);font-size: var(--text-sm);line-height: 1.5;margin: 0;max-inline-size: 22rem;padding: var(--space-sm) var(--space-md)}@supports (anchor-name: --x){.ui-def{inset: auto;margin-block-start: 0.4rem;position-area: block-end span-inline-end;position-try-fallbacks: flip-block,flip-inline}}.ui-glossary{border-block-start: 1px solid var(--line);display: grid;gap: var(--space-2xs) var(--space-md);grid-template-columns: fit-content(45%) minmax(0,1fr);margin: 0;padding-block-start: var(--space-md)}.ui-glossary__term{color: var(--text);font-family: var(--mono);font-size: var(--text-xs);font-weight: 600;letter-spacing: var(--tracking-wide);min-inline-size: 0;overflow-wrap: anywhere}.ui-glossary__def{color: var(--text-dim);font-size: var(--text-sm);margin: 0;min-inline-size: 0}@media (max-width: 32rem){.ui-glossary{grid-template-columns: 1fr;gap: 0.15rem var(--space-md)}.ui-glossary__def{margin-block-end: var(--space-xs)}}.ui-toc{--toc-top: var(--space-md);align-self: start;font-family: var(--mono);font-size: var(--text-xs);inset-block-start: var(--toc-top);letter-spacing: var(--tracking-wide);position: sticky}.ui-toc__title{color: var(--text-dim);font-size: var(--text-2xs);margin-block-end: var(--space-xs);text-transform: uppercase}.ui-toc__list{display: grid;gap: 1px;list-style: none;margin: 0;padding: 0}.ui-toc__list .ui-toc__list{margin-inline-start: var(--space-sm)}.ui-toc__link{border-inline-start: 2px solid var(--line);color: var(--text-dim);display: block;padding: 0.3rem var(--space-sm);text-decoration: none;transition: color var(--duration-fast) var(--ease-standard)}.ui-toc__link[aria-current]:not([aria-current='false']){border-inline-start-color: var(--accent);color: var(--accent-text)}.ui-toc__link:focus-visible{outline: 2px solid var(--focus-ring);outline-offset: -2px}@media (hover: hover){.ui-toc__link:hover:not([aria-current]:not([aria-current='false'])){color: var(--text)}}@media (forced-colors: active){.ui-toc__link[aria-current]:not([aria-current='false']){border-inline-start-color: Highlight;color: Highlight}}@media (prefers-reduced-motion: reduce){.ui-toc__link{transition: none}}.ui-tree{color: var(--text);font-family: var(--mono);font-size: var(--text-sm);line-height: 1.5}.ui-tree__branch,.ui-tree__leaf{display: block}.ui-tree__branch .ui-tree__branch,.ui-tree__branch .ui-tree__leaf{border-inline-start: 1px solid var(--line);margin-inline-start: 0.5rem;padding-inline-start: var(--space-sm)}.ui-tree__summary{align-items: center;cursor: pointer;display: flex;gap: var(--space-2xs);list-style: none;padding-block: var(--space-2xs)}.ui-tree__summary::-webkit-details-marker{display: none}.ui-tree__summary::before{block-size: 0.4rem;border-block-end: 1.5px solid var(--text-dim);border-inline-end: 1.5px solid var(--text-dim);content: '';flex: 0 0 auto;inline-size: 0.4rem;transform: rotate(-45deg);transition: transform var(--duration-fast) var(--ease-spring)}.ui-tree__branch[open] > .ui-tree__summary::before{border-color: var(--accent);transform: rotate(45deg)}.ui-tree__branch[open] > .ui-tree__summary{color: var(--accent-text)}.ui-tree__leaf{align-items: center;display: flex;gap: var(--space-2xs);padding-block: var(--space-2xs)}.ui-tree__leaf::before{content: '';flex: 0 0 auto;inline-size: 0.4rem}.ui-tree__label{min-inline-size: 0;overflow: hidden;text-overflow: ellipsis;white-space: nowrap}@supports selector(::details-content){@media (prefers-reduced-motion: no-preference){.ui-tree{interpolate-size: allow-keywords}.ui-tree__branch::details-content{block-size: 0;overflow: hidden;transition: block-size var(--duration-base) var(--ease-out),content-visibility var(--duration-base) allow-discrete}.ui-tree__branch[open]::details-content{block-size: auto}}}@media (prefers-reduced-motion: reduce){.ui-tree__summary::before{transition: none}}@media (forced-colors: active){.ui-tree__branch[open] > .ui-tree__summary::before{border-color: Highlight}}}
|
|
@@ -223,6 +223,35 @@ Hard acceptance criteria for every step below:
|
|
|
223
223
|
safety, which the gate caught); the ramps are OKLCH. A chart colour's WCAG
|
|
224
224
|
ratio vs the background is reported **advisory** (a fill is not body text;
|
|
225
225
|
the pattern + ΔE gate carry distinguishability).
|
|
226
|
+
|
|
227
|
+
**Amended in 0.12 — categorical, not accent-led; measured, not inherited.**
|
|
228
|
+
The accent-led set failed the measurable palette checks on the package's own
|
|
229
|
+
surfaces: Okabe-Ito's yellow and the slate fell outside the lightness band,
|
|
230
|
+
the slate read as grey under the chroma floor, and spending slot 1 on the
|
|
231
|
+
alert red made every ordinary first series look like an error. A consumer
|
|
232
|
+
that draws charts, timeline lanes, graph colours and participant presence
|
|
233
|
+
from one palette shipped validated values and recorded the divergence; 0.12
|
|
234
|
+
adopts them. The order is fixed (blue, orange, aqua, yellow, magenta, green,
|
|
235
|
+
violet, red) and no slot is the accent, which keeps rule 5's single
|
|
236
|
+
interactive accent intact.
|
|
237
|
+
|
|
238
|
+
The gate changed with it. A fixed order means adjacent slots are the pairs a
|
|
239
|
+
legend or a stacked mark puts side by side, so `check:charts` holds
|
|
240
|
+
*adjacent* pairs apart under simulated protanopia/deuteranopia (OKLab
|
|
241
|
+
ΔE×100 ≥ 6) and in normal vision (≥ 15), with every slot inside the theme's
|
|
242
|
+
OKLCH lightness band and above the chroma floor, measured per theme against
|
|
243
|
+
the panel, the page and the OLED surfaces. All-pairs separation is reported,
|
|
244
|
+
not gated: no eight-hue set clears it, which is why the pattern fill stays
|
|
245
|
+
the mandated second channel for scatter and map use. Contrast under 3:1 is
|
|
246
|
+
reported for the same reason.
|
|
247
|
+
|
|
248
|
+
The tier also gains its second use, which the Context above names as a
|
|
249
|
+
monochrome restriction: **categorical identity**. `--cat-N` carries the same
|
|
250
|
+
hue for a tag, a participant or a user-chosen tint, with `--cat-N-tint` (a
|
|
251
|
+
16% wash over `--panel`, so it follows skins) and `--cat-N-ink` (text that
|
|
252
|
+
holds 4.5:1 on the panel, the page and its own tint, gated). Rule 4 still
|
|
253
|
+
holds: neither namespace may appear in core component CSS, and identity
|
|
254
|
+
colour is never status.
|
|
226
255
|
8. **OKLCH `--accent-1..6` ramp migration.** *(done in 0.4.0)* Steps 1–4 mix
|
|
227
256
|
the accent toward `--accent-ramp-end` (white in light, black in dark)
|
|
228
257
|
`in oklch` (perceptually even). The explicit endpoint avoids low-chroma
|
package/docs/architecture.md
CHANGED
|
@@ -188,7 +188,7 @@ are copied into consumer reports.
|
|
|
188
188
|
| GitHub Actions workflow syntax and embedded shell snippets lint | `check:workflows` (`github-actionlint`) |
|
|
189
189
|
| every shipped CSS leaf is classified as foundation or has explicit docs/demo/e2e ownership | `check-component-matrix.mjs` |
|
|
190
190
|
| every public behavior export has explicit docs, unit-test, and browser-test ownership | `check-behavior-matrix.mjs` |
|
|
191
|
-
| every public helper export in `classes`/`annotations`/`connectors`/`glyphs` has explicit docs, unit-test, and type-test ownership | `check-helper-matrix.mjs` |
|
|
191
|
+
| every public helper export in `classes`/`annotations`/`connectors`/`renderer`/`glyphs` has explicit docs, unit-test, and type-test ownership | `check-helper-matrix.mjs` |
|
|
192
192
|
| `@playwright/test` version ⇄ pinned Playwright container image ⇄ visual workflows/docs/local runner | `check-playwright-container.mjs` |
|
|
193
193
|
| every shipped JSON schema is exported, documented, validates its public cookbook example, and rejects malformed sidecars | `check-schemas.mjs` |
|
|
194
194
|
| packed public text contains no private terms, local paths, or secret-looking assignments | `check-public-hygiene.mjs` |
|
package/docs/compositions.md
CHANGED
|
@@ -74,8 +74,8 @@ Use the core stylesheet plus `report-kit.css` for a standalone HTML report.
|
|
|
74
74
|
Use real asset URLs in HTML; package specifiers resolve only in build tools.
|
|
75
75
|
|
|
76
76
|
```html
|
|
77
|
-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.
|
|
78
|
-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.
|
|
77
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.12.0/dist/bronto.css" />
|
|
78
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ponchia/ui@0.12.0/dist/css/report-kit.css" />
|
|
79
79
|
<article class="ui-report">
|
|
80
80
|
<header class="ui-report__cover ui-report__cover--compact">
|
|
81
81
|
<h1 class="ui-report__title">Keep the current configuration</h1>
|
package/docs/contrast.md
CHANGED
|
@@ -283,40 +283,40 @@ palette untouched). Accents are authored in OKLCH; `--accent-text` is the
|
|
|
283
283
|
|
|
284
284
|
## Data-viz palette (advisory)
|
|
285
285
|
|
|
286
|
-
The opt-in Tier-4
|
|
287
|
-
`tokens/charts.js`) is gated differently:
|
|
288
|
-
|
|
289
|
-
vision** (`check:charts`,
|
|
290
|
-
each series ships a matching
|
|
291
|
-
WCAG ratios below are **advisory**
|
|
292
|
-
|
|
293
|
-
the
|
|
286
|
+
The opt-in Tier-4 categorical palette (`@ponchia/ui/css/dataviz.css`, authored
|
|
287
|
+
in `tokens/charts.js`) is gated differently: each slot sits inside the theme's
|
|
288
|
+
OKLCH lightness band and above the chroma floor, and **adjacent slots stay apart
|
|
289
|
+
under simulated protanopia/deuteranopia and in normal vision** (`check:charts`,
|
|
290
|
+
OKLab ΔE). Colour is **never the sole signal** — each series ships a matching
|
|
291
|
+
`--chart-pattern-*` dot-matrix fill. So the WCAG ratios below are **advisory**
|
|
292
|
+
(a chart fill is not body text); for thin lines, points or text use the slot's
|
|
293
|
+
`--cat-N-ink`, which `check:charts` holds to 4.5:1. No slot is the accent.
|
|
294
294
|
|
|
295
295
|
### Light theme — categorical vs `--bg`
|
|
296
296
|
|
|
297
297
|
| Series | Colour | Ratio _(advisory)_ | APCA _(advisory)_ |
|
|
298
298
|
| --- | --- | --- | --- |
|
|
299
|
-
| 1 _(accent)_ | `#
|
|
300
|
-
| 2 | `#
|
|
301
|
-
| 3 | `#
|
|
302
|
-
| 4 | `#
|
|
303
|
-
| 5 | `#
|
|
304
|
-
| 6 | `#
|
|
305
|
-
| 7 | `#
|
|
306
|
-
| 8 | `#
|
|
299
|
+
| 1 _(accent)_ | `#2a78d6` | 4.01:1 | Lc 63.5 |
|
|
300
|
+
| 2 | `#eb6834` | 2.91:1 | Lc 51.8 |
|
|
301
|
+
| 3 | `#1baf7a` | 2.56:1 | Lc 46.9 |
|
|
302
|
+
| 4 | `#eda100` | 1.97:1 | Lc 35.5 |
|
|
303
|
+
| 5 | `#e87ba4` | 2.44:1 | Lc 45.2 |
|
|
304
|
+
| 6 | `#008300` | 4.49:1 | Lc 66.8 |
|
|
305
|
+
| 7 | `#4a3aa7` | 7.77:1 | Lc 82.3 |
|
|
306
|
+
| 8 | `#e34948` | 3.59:1 | Lc 59.1 |
|
|
307
307
|
|
|
308
308
|
### Dark theme — categorical vs `--bg`
|
|
309
309
|
|
|
310
310
|
| Series | Colour | Ratio _(advisory)_ | APCA _(advisory)_ |
|
|
311
311
|
| --- | --- | --- | --- |
|
|
312
|
-
| 1 _(accent)_ | `#
|
|
313
|
-
| 2 | `#
|
|
314
|
-
| 3 | `#
|
|
315
|
-
| 4 | `#
|
|
316
|
-
| 5 | `#
|
|
317
|
-
| 6 | `#
|
|
318
|
-
| 7 | `#
|
|
319
|
-
| 8 | `#
|
|
312
|
+
| 1 _(accent)_ | `#3987e5` | 5.15:1 | Lc 37.5 |
|
|
313
|
+
| 2 | `#d95926` | 4.82:1 | Lc 35.6 |
|
|
314
|
+
| 3 | `#199e70` | 5.50:1 | Lc 40.1 |
|
|
315
|
+
| 4 | `#c98500` | 6.10:1 | Lc 43.9 |
|
|
316
|
+
| 5 | `#d55181` | 4.75:1 | Lc 35.0 |
|
|
317
|
+
| 6 | `#008300` | 3.79:1 | Lc 27.7 |
|
|
318
|
+
| 7 | `#9085e9` | 5.99:1 | Lc 43.0 |
|
|
319
|
+
| 8 | `#e66767` | 5.80:1 | Lc 42.2 |
|
|
320
320
|
|
|
321
321
|
## Scope & caveats
|
|
322
322
|
|
|
@@ -235,6 +235,11 @@ consumer since**; their follow-ons are demand-gated, not queued. Active work
|
|
|
235
235
|
is therefore consolidation of the report lane (hub routing, print/PDF
|
|
236
236
|
fidelity, consumer-contract gates), not new surfaces.
|
|
237
237
|
|
|
238
|
+
> **Superseded (2026-10-01).** A canvas workspace now consumes the command,
|
|
239
|
+
> workbench and state leaves daily, and its notes and visual models carry more
|
|
240
|
+
> agent-authored prose than reports do. The north star moved to objects on a
|
|
241
|
+
> canvas that explain themselves; see the [roadmap](https://github.com/Ponchia/bronto-ui/blob/main/ROADMAP.md#north-star).
|
|
242
|
+
|
|
238
243
|
### Report-lane primitives shipped in 0.6.7
|
|
239
244
|
|
|
240
245
|
From the 2026-06-09 local scout. These were kept on merit, then shipped only
|
package/docs/mermaid.md
CHANGED
|
@@ -92,7 +92,7 @@ switch, re-`initialize` with the other palette and re-render.
|
|
|
92
92
|
- **Chart-like** diagrams carry a categorical series palette — **pie**
|
|
93
93
|
(`pie1`…`pie12`), **git** (`git0`…`git7`), and **user-journey**
|
|
94
94
|
(`fillType0`…`fillType7`) are wired to the CVD-safe
|
|
95
|
-
[charts palette](./legends.md) (
|
|
95
|
+
[charts palette](./legends.md) (blue first; no slot is the accent).
|
|
96
96
|
- **Structural** diagrams — flowchart, sequence, class, ER, state — use the
|
|
97
97
|
monochrome node/edge/cluster grammar and spend the accent only on notes.
|
|
98
98
|
- **Not themed: `gantt` and `timeline`.** Their colours come from
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Upgrade from 0.11 to 0.12
|
|
2
|
+
|
|
3
|
+
0.12 replaces the categorical palette and adds a runtime resolver for
|
|
4
|
+
renderers. Classes and core tokens are unchanged; the structured changes are
|
|
5
|
+
in [`MIGRATIONS.json`](../../MIGRATIONS.json). If you are coming from 0.10,
|
|
6
|
+
apply the [0.11 migration](0.10-to-0.11.md) first.
|
|
7
|
+
|
|
8
|
+
## Review charts that relied on series 1 being the accent
|
|
9
|
+
|
|
10
|
+
Until 0.11, `--chart-1` was `var(--accent)` and series 2–8 were Okabe-Ito.
|
|
11
|
+
From 0.12 the eight slots are fixed hues: blue, orange, aqua, yellow, magenta,
|
|
12
|
+
green, violet, red. No slot is the accent.
|
|
13
|
+
|
|
14
|
+
1. Find uses of `--chart-1`, `range.category[0]`, `charts.<theme>.categorical[0]`
|
|
15
|
+
and `ACCENT` from `@ponchia/ui/charts`. `ACCENT` is removed.
|
|
16
|
+
2. Where a chart meant "the brand", paint that one mark with the accent through
|
|
17
|
+
an explicit encoding (`brontoVegaAccent(theme)`, or `var(--accent)` in SVG),
|
|
18
|
+
and leave the categorical palette for categories.
|
|
19
|
+
3. Where you pinned `--chart-1` to a fixed value to keep the accent out of
|
|
20
|
+
your data, delete the pin.
|
|
21
|
+
4. `brontoVegaAccent(theme)` now returns the resolved `--accent`, and
|
|
22
|
+
`brontoVegaNeutral(theme)` the resolved `--text-dim`. They no longer index
|
|
23
|
+
`range.category`.
|
|
24
|
+
|
|
25
|
+
## Sequential ramps have five steps
|
|
26
|
+
|
|
27
|
+
`--chart-seq-6` is removed; `--chart-seq-1..5` is one blue hue, step 1 nearest
|
|
28
|
+
the surface. Re-map a six-bin choropleth or heatmap to five bins, or
|
|
29
|
+
interpolate between steps in your renderer.
|
|
30
|
+
|
|
31
|
+
## The static Vega config is frameless
|
|
32
|
+
|
|
33
|
+
`brontoVegaConfig()` sets `view.stroke: null` (no plot frame), draws a single
|
|
34
|
+
series in the first categorical hue, keeps a `--panel` gap between adjacent
|
|
35
|
+
rect, arc and area fills, and sets readable label sizes. A spec's own `config`
|
|
36
|
+
still wins. Review dashboards that relied on the frame or the accent-coloured
|
|
37
|
+
default mark.
|
|
38
|
+
|
|
39
|
+
## New: categorical identity and runtime tokens
|
|
40
|
+
|
|
41
|
+
- `--cat-N`, `--cat-N-tint` and `--cat-N-ink` carry the same hues for tags,
|
|
42
|
+
participants and user-chosen tints. Replace hand-picked tag colours, and
|
|
43
|
+
status tokens borrowed as category colours, with these.
|
|
44
|
+
- `@ponchia/ui/renderer` resolves the live theme for canvas, WebGL and SVG
|
|
45
|
+
renderers (`readTokens`, `observeTokens`, `vegaConfig`, `xtermTheme`). A page
|
|
46
|
+
that switches skin, contrast or the OLED surface should use it instead of
|
|
47
|
+
`charts.json` or the static Vega files. See [renderer](../renderer.md).
|
package/docs/package-contract.md
CHANGED
|
@@ -150,6 +150,7 @@ semantic versioning contract for the surfaces listed here.
|
|
|
150
150
|
| `./docs/legends.md` | `./docs/legends.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
|
|
151
151
|
| `./docs/marks.md` | `./docs/marks.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
|
|
152
152
|
| `./docs/connectors.md` | `./docs/connectors.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
|
|
153
|
+
| `./docs/renderer.md` | `./docs/renderer.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
|
|
153
154
|
| `./docs/spotlight.md` | `./docs/spotlight.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
|
|
154
155
|
| `./docs/crosshair.md` | `./docs/crosshair.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
|
|
155
156
|
| `./docs/selection.md` | `./docs/selection.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
|
|
@@ -208,6 +209,7 @@ semantic versioning contract for the surfaces listed here.
|
|
|
208
209
|
| `./glyphs` | types: `./glyphs/glyphs.d.ts`<br>default: `./glyphs/glyphs.js` | Geometry/render helper JS | Stable additive | ESM helper surface. Function names, options, and data shapes are public; rendering heuristics may tune. |
|
|
209
210
|
| `./annotations` | types: `./annotations/index.d.ts`<br>default: `./annotations/index.js` | Geometry/render helper JS | Stable additive | ESM helper surface. Function names, options, and data shapes are public; rendering heuristics may tune. |
|
|
210
211
|
| `./connectors` | types: `./connectors/index.d.ts`<br>default: `./connectors/index.js` | Geometry/render helper JS | Stable additive | ESM helper surface. Function names, options, and data shapes are public; rendering heuristics may tune. |
|
|
212
|
+
| `./renderer` | types: `./renderer/index.d.ts`<br>default: `./renderer/index.js` | Renderer/theme helper JS | Stable additive | ESM theme data/helpers for opt-in skins, chart palettes, and external renderers. |
|
|
211
213
|
| `./skins` | types: `./tokens/skins.d.ts`<br>default: `./tokens/skins.js` | Renderer/theme helper JS | Stable additive | ESM theme data/helpers for opt-in skins, chart palettes, and external renderers. |
|
|
212
214
|
| `./charts` | types: `./tokens/charts.d.ts`<br>default: `./tokens/charts.js` | Renderer/theme helper JS | Stable additive | ESM theme data/helpers for opt-in skins, chart palettes, and external renderers. |
|
|
213
215
|
| `./charts.json` | `./tokens/charts.json` | Machine-readable data | Stable additive | JSON package data for non-JS/tooling consumers. Shape is public unless the paired doc marks a field internal. |
|
|
@@ -223,6 +225,7 @@ semantic versioning contract for the surfaces listed here.
|
|
|
223
225
|
| `./docs/migrations/0.9-to-0.10.md` | `./docs/migrations/0.9-to-0.10.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
|
|
224
226
|
| `./docs/adr/0006-trusted-publishing.md` | `./docs/adr/0006-trusted-publishing.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
|
|
225
227
|
| `./docs/migrations/0.10-to-0.11.md` | `./docs/migrations/0.10-to-0.11.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
|
|
228
|
+
| `./docs/migrations/0.11-to-0.12.md` | `./docs/migrations/0.11-to-0.12.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
|
|
226
229
|
| `./css/discussion.css` | `./dist/css/discussion.css` | Opt-in layered CSS leaf | Stable additive | Generated layered direct-import leaf. Opt-in and not included in dist/bronto.css. |
|
|
227
230
|
| `./css/unlayered/discussion.css` | `./css/discussion.css` | Unlayered CSS leaf | Stable path | Raw authored CSS leaf for consumers that deliberately opt out of @layer bronto on that leaf. |
|
|
228
231
|
| `./docs/discussion.md` | `./docs/discussion.md` | Shipped documentation | Stable path | Markdown documentation shipped in the tarball. Paths are public reading assets within a compatible minor. |
|
|
@@ -248,6 +251,7 @@ always includes `package.json`, `README.md`, `LICENSE`, and
|
|
|
248
251
|
| `schemas` | Machine-readable schemas | Declarative JSON schemas for package-adjacent report/tooling contracts. |
|
|
249
252
|
| `annotations` | Authored public JS directory | ESM source shipped as-is; adjacent declarations/maps are generated. |
|
|
250
253
|
| `connectors` | Authored public JS directory | ESM source shipped as-is; adjacent declarations/maps are generated. |
|
|
254
|
+
| `renderer` | Authored public JS directory | ESM source shipped as-is; adjacent declarations/maps are generated. |
|
|
251
255
|
| `shiki` | Theme data | Shiki theme JSON on the governed palette. |
|
|
252
256
|
| `llms.txt` | Agent entrypoint | Shipped plain-text orientation for offline LLM/agent consumers. |
|
|
253
257
|
| `CHANGELOG.md` | Release record | Shipped historical release notes. |
|
|
@@ -272,6 +276,7 @@ always includes `package.json`, `README.md`, `LICENSE`, and
|
|
|
272
276
|
| `docs/legends.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
|
|
273
277
|
| `docs/marks.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
|
|
274
278
|
| `docs/connectors.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
|
|
279
|
+
| `docs/renderer.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
|
|
275
280
|
| `docs/spotlight.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
|
|
276
281
|
| `docs/crosshair.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
|
|
277
282
|
| `docs/selection.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
|
|
@@ -310,6 +315,7 @@ always includes `package.json`, `README.md`, `LICENSE`, and
|
|
|
310
315
|
| `docs/migrations/0.9-to-0.10.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
|
|
311
316
|
| `docs/adr/0006-trusted-publishing.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
|
|
312
317
|
| `docs/migrations/0.10-to-0.11.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
|
|
318
|
+
| `docs/migrations/0.11-to-0.12.md` | Shipped documentation | Curated Markdown reading asset shipped in the npm tarball. |
|
|
313
319
|
|
|
314
320
|
## Artifact Provenance
|
|
315
321
|
|
|
@@ -323,7 +329,7 @@ result. The listed gates are part of `npm run check`.
|
|
|
323
329
|
| Token model | `tokens/index.js` | css/tokens.css; tokens/index.json; tokens/tokens.dtcg.json; tokens/resolved.json; tokens/figma.variables.json; tokens/index.d.ts | `npm run tokens:css:build; tokens:build; dtcg:build; resolved:build; figma:variables:build; dts:build` | check:fresh; check:contrast | Token names/roles are public. Resolved and Figma handoff values are visual tuning before 1.0. |
|
|
324
330
|
| Class registry | `classes/index.js plus css/*.css selectors` | classes/classes.json; classes/index.d.ts; classes/vscode.css-custom-data.json; docs/reference.md | `npm run classes:json:build; dts:build; vscode:build; reference:build` | check:fresh; check:classes; check:contract | The typed registry, JSON vocabulary, and generated reference stay aligned with real selectors. |
|
|
325
331
|
| Authored CSS graph | `css/core.css plus css/*.css leaves` | dist/bronto.css; dist/css/*.css (48 layered outputs) | `npm run dist:build` | check:dist; check:exports; check:component-matrix | Default bundle and direct layered leaf imports are generated from authored CSS, size-gated, and coverage-owned as foundation or component leaves. |
|
|
326
|
-
| JSDoc-authored public JS | `behaviors/; annotations/; connectors/; react/; solid/; qwik/; svelte/; vue/` | adjacent *.d.ts and *.d.ts.map files | `npm run dts:emit` | check:dts-emit; check:types; check:consumer-surface; check:consumer-types; check:behavior-matrix; check:attw; check:publint | Declarations are emitted from the shipped JS, package subpath imports are compiled from a packed clean consumer, and public behavior exports are docs/unit/browser owned. |
|
|
332
|
+
| JSDoc-authored public JS | `behaviors/; annotations/; connectors/; renderer/; react/; solid/; qwik/; svelte/; vue/` | adjacent *.d.ts and *.d.ts.map files | `npm run dts:emit` | check:dts-emit; check:types; check:consumer-surface; check:consumer-types; check:behavior-matrix; check:attw; check:publint | Declarations are emitted from the shipped JS, package subpath imports are compiled from a packed clean consumer, and public behavior exports are docs/unit/browser owned. |
|
|
327
333
|
| Glyph registry | `glyphs/glyphs.js` | glyphs/glyphs.d.ts | `npm run glyphs:build` | check:glyphs; check:unit | Glyph names and render options are public. The registry stays sorted and type-covered. |
|
|
328
334
|
| Display colorways | `tokens/skins.js` | css/skins.css; tokens/skins.d.ts | `npm run skins:build` | check:skins; check:contrast | Skins are opt-in root-level choices and never part of dist/bronto.css. |
|
|
329
335
|
| Chart palette | `tokens/charts.js` | css/dataviz.css; tokens/charts.json; tokens/charts.d.ts | `npm run charts:build` | check:charts | Data-viz colors are opt-in, CVD-gated, and never UI chrome. |
|