/* source: vendor/normalize.css */
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

/* Document
   ========================================================================== */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */

html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
}

/* Sections
   ========================================================================== */

/**
 * Remove the margin in all browsers.
 */

body {
  margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */

main {
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */

h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
   ========================================================================== */

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */

hr {
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  overflow: visible; /* 2 */
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

pre {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/* Text-level semantics
   ========================================================================== */

/**
 * Remove the gray background on active links in IE 10.
 */

a {
  background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */

abbr[title] {
  border-bottom: none; /* 1 */
  text-decoration: underline; /* 2 */
  text-decoration: underline dotted; /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */

b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

code,
kbd,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */

small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
   ========================================================================== */

/**
 * Remove the border on images inside links in IE 10.
 */

img {
  border-style: none;
}

/* Forms
   ========================================================================== */

/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1.15; /* 1 */
  margin: 0; /* 2 */
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */

button,
input { /* 1 */
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */

button,
select { /* 1 */
  text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */

button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */

fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */

legend {
  box-sizing: border-box; /* 1 */
  color: inherit; /* 2 */
  display: table; /* 1 */
  max-width: 100%; /* 1 */
  padding: 0; /* 3 */
  white-space: normal; /* 1 */
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */

progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */

textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */

[type="checkbox"],
[type="radio"] {
  box-sizing: border-box; /* 1 */
  padding: 0; /* 2 */
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */

[type="search"] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */

[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/* Interactive
   ========================================================================== */

/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */

details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */

summary {
  display: list-item;
}

/* Misc
   ========================================================================== */

/**
 * Add the correct display in IE 10+.
 */

template {
  display: none;
}

/**
 * Add the correct display in IE 10.
 */

[hidden] {
  display: none;
}


/* source: global.css */
:root {
	/* Paul Tol Bright */
	--blue: #4477aa;
	--blue-dark: #3a6590;
	--red: #ee6677;
	--red-dark: #b24c59;
	--green: #228833;
	--green-dark: #1d742b;
	--yellow: #ccbb44;
	--yellow-dark: #706725;
	--cyan: #66ccee;
	--cyan-dark: #387083;
	--purple: #aa3377;
	--purple-dark: #902b65;
	--gray: #bbbbbb;
	--rule: #dddddd;
	--rule-strong: #bbbbbb;
	--surface-subtle: #f7f7f7;

	/* Surfaces and compatibility aliases */
	--color-blue: var(--blue);
	--color-red: var(--red);
	--color-green: var(--green);
	--color-yellow: var(--yellow);
	--color-cyan: var(--cyan);
	--color-purple: var(--purple);
	--color-gray: var(--gray);
	--color-background: #ffffff;
	--color-surface: #ffffff;
	--color-surface-soft: var(--surface-subtle);
	--color-border: var(--rule);
	--color-border-strong: var(--rule-strong);

	/* Accessible darker variants */
	--color-blue-dark: var(--blue-dark);
	--color-red-dark: var(--red-dark);
	--color-green-dark: var(--green-dark);
	--color-yellow-dark: var(--yellow-dark);
	--color-cyan-dark: var(--cyan-dark);
	--color-purple-dark: var(--purple-dark);
	--color-gray-dark: #676767;

	/* Light backgrounds */
	--color-blue-bg: #ecf1f6;
	--color-red-bg: #fdf0f1;
	--color-green-bg: #e9f3eb;
	--color-yellow-bg: #faf8ec;
	--color-cyan-bg: #f0fafd;
	--color-purple-bg: #f6ebf1;
	--color-gray-bg: #f8f8f8;

	/* Semantic aliases */
	--color-primary: var(--color-blue);
	--color-primary-hover: var(--color-blue-dark);
	--color-link: var(--color-blue-dark);
	--color-focus: var(--color-purple);
	--color-success: var(--color-green-dark);
	--color-success-bg: var(--color-green-bg);
	--color-warning: var(--color-yellow-dark);
	--color-warning-bg: var(--color-yellow-bg);
	--color-danger: var(--color-purple-dark);
	--color-danger-bg: var(--color-purple-bg);
	--color-info: var(--color-blue-dark);
	--color-info-bg: var(--color-blue-bg);

	/* Legacy aliases used by existing components */
	--color-positive: var(--color-green);
	--color-negative: var(--color-purple);
	--color-positive-bg: var(--color-green-bg);
	--color-negative-bg: var(--color-purple-bg);
	--color-surface-base: var(--color-surface);
	--color-surface-muted: var(--color-surface-soft);
	--color-surface-accent: var(--color-blue-bg);
	--color-surface-border: var(--color-border);
	--color-surface-shadow: none;

	/* Spacing */
	--space-0: 0;
	--space-1: 0.25rem;
	--space-2: 0.5rem;
	--space-3: 0.75rem;
	--space-4: 1rem;
	--space-5: 1.5rem;

	/* Radius */
	--radius-control: 0.375rem;
	--radius-sm: var(--radius-control);
	--radius-md: var(--radius-control);
	--radius-lg: 0;
	--radius-xl: 0;
	--radius-pill: var(--radius-control);

	/* Layout */
	--site-shell-width: 480px;
	--header-sticky-offset: 0rem;
	--page-header-sticky-offset: var(--header-sticky-offset);
}

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

html {
	font-size: 100%;
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}

body {
	margin: 0;
	background: var(--color-background);
	font-size: 1em;
	line-height: 1.55;
	min-inline-size: 0;
}

button,
input,
select,
textarea {
	font: inherit;
}

img,
svg {
	max-inline-size: 100%;
}

a {
	text-decoration: underline;
	text-underline-offset: 0.16em;
	text-decoration-thickness: 0.08em;
}

a:hover {
	text-decoration-thickness: 0.12em;
}

a[href],
button,
summary,
input,
select,
textarea {
	-webkit-tap-highlight-color: transparent;
}

:focus-visible {
	outline: 3px solid var(--color-focus);
	outline-offset: 3px;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0;
	font-size: 1em;
	line-height: 1.4;
	text-wrap: balance;
}

h1 {
	font-size: 1.25em;
	line-height: 1.3;
	font-weight: 800;
}

h2 {
	padding-block-end: var(--space-1);
	border-block-end: 2px solid currentColor;
	font-weight: 800;
}

h3 {
	font-weight: 700;
}

h4 {
	font-weight: 700;
}

h5,
h6 {
	font-weight: 600;
}

p,
ul,
ol,
dl,
figure {
	margin: 0;
}

main,
section,
article,
header,
nav,
aside,
figure,
table {
	min-inline-size: 0;
}

table {
	inline-size: 100%;
	border-collapse: collapse;
	background: var(--color-surface);
}

th,
td {
	padding: 0.45rem 0.35rem;
	border-block-end: 1px solid var(--color-border);
	vertical-align: top;
	text-align: start;
	line-height: 1.45;
}

th {
	background: var(--color-surface-soft);
	font-weight: 700;
}

small {
	font-size: 0.9em;
}

summary {
	min-block-size: 2.75rem;
}

.site-shell {
	inline-size: 100%;
	max-inline-size: var(--site-shell-width);
	min-inline-size: 0;
	min-block-size: 100dvh;
	margin-inline: auto;
	overflow-x: clip;
	background: var(--color-background);
}

.site-shell.has-compact-header {
	--page-header-sticky-offset: 0rem;
}

.site-main {
	inline-size: 100%;
	max-inline-size: 100%;
	min-inline-size: 0;
}

.page {
	inline-size: 100%;
	max-inline-size: 100%;
	min-inline-size: 0;
	padding-inline: var(--space-4);
	padding-block: var(--space-3) var(--space-5);
}

.container {
	inline-size: 100%;
	min-inline-size: 0;
}

.row {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.column {
	inline-size: 100%;
}

.visually-hidden {
	position: absolute;
	inline-size: 1px;
	block-size: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.eyebrow,
.text-small {
	font-size: 0.9em;
	line-height: 1.5;
}

.eyebrow {
	font-weight: 700;
}

.text-positive {
	color: var(--color-positive);
}

.text-negative {
	color: var(--color-negative);
}

.prose {
	max-inline-size: 100%;
	line-height: 1.7;
	overflow-wrap: anywhere;
}

.prose p {
	margin-block: 0 0.95em;
}

.prose p:last-child {
	margin-block-end: 0;
}

.button,
button,
input[type="submit"] {
	display: inline-flex;
	min-block-size: 2.75rem;
	align-items: center;
	justify-content: center;
	padding-inline: var(--space-4);
	border: 1px solid var(--color-primary);
	border-radius: var(--radius-md);
	background: var(--color-primary);
	color: var(--color-background);
	font-weight: 700;
	text-decoration: none;
	cursor: pointer;
}

.button:hover,
button:hover,
input[type="submit"]:hover,
.button:focus-visible,
button:focus-visible,
input[type="submit"]:focus-visible {
	background: var(--color-primary-hover);
	border-color: var(--color-primary-hover);
	color: var(--color-background);
}

.button.button-outline {
	background: var(--color-surface);
	border-color: var(--color-border-strong);
}

.button.button-outline:hover,
.button.button-outline:focus-visible {
	background: var(--color-blue-bg);
	border-color: var(--color-link);
}

.table-hint,
.note-text {
	font-size: 0.9em;
	line-height: 1.6;
}

.table-wrap {
	overflow-x: auto;
	overscroll-behavior-inline: contain;
	contain: inline-size paint;
	max-inline-size: 100%;
	min-inline-size: 0;
	background: var(--color-surface);
	scrollbar-width: thin;
}

.table-wrap table {
	min-inline-size: 42rem;
}

.table-wrap:focus-visible {
	outline: 3px solid var(--color-focus);
	outline-offset: 3px;
}


/* source: page-primitives.css */
.page-intro,
.entity-hero,
.page-section,
.page-panel,
.page-scroll-region,
.scrollable-region {
	max-inline-size: 100%;
	min-inline-size: 0;
}

.page-intro {
	display: grid;
	gap: var(--space-3);
	margin: 0;
}

.page-intro-copy,
.page-intro-main,
.page-section-heading,
.page-section-heading-main,
.page-section-preface,
.page-section-content,
.page-panel-header,
.page-panel-heading,
.page-panel-body {
	display: grid;
	gap: var(--space-3);
	inline-size: 100%;
	min-inline-size: 0;
}

.page-intro-description,
.page-intro-meta,
.page-section-description,
.page-panel-description,
.entity-hero-meta,
.company-title-subhead {
	margin: 0;
}

.page-intro-eyebrow,
.page-intro-description,
.page-intro-meta,
.page-section-description,
.page-panel-description,
.entity-hero-meta,
.company-title-subhead,
.stock-date,
.page-section-heading-aside {
	font-size: 0.9em;
}

.page-intro-eyebrow {
	margin: 0;
	font-weight: 700;
}

.page-panel,
.section-card {
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
}

.page-intro.is-hero,
.entity-hero {
	padding-block: var(--space-2);
	border: 0;
	border-radius: 0;
	background: transparent;
}

.page-intro-title,
.page-section-title,
.page-panel-title {
	margin: 0;
	overflow-wrap: anywhere;
}

.page-intro-actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2);
}

.page-intro-actions > :where(a, button) {
	display: inline-flex;
	min-block-size: 2.75rem;
	align-items: center;
	justify-content: center;
	padding-inline: var(--space-4);
	border: 1px solid var(--color-border-strong);
	border-radius: var(--radius-control);
	background: var(--color-surface);
	font-weight: 700;
	text-decoration: underline;
}

.page-intro-actions > :where(a, button).is-primary {
	background: var(--color-primary);
	border-color: var(--color-primary);
	color: var(--color-background);
}

.page-intro-actions > :where(a, button).is-primary:hover,
.page-intro-actions > :where(a, button).is-primary:focus-visible {
	background: var(--color-primary-hover);
	border-color: var(--color-primary-hover);
	color: var(--color-background);
}

.entity-hero {
	display: grid;
	gap: var(--space-3);
}

.entity-hero.is-sticky {
	position: sticky;
	inset-block-start: var(--page-header-sticky-offset);
	z-index: 10;
	background: var(--color-background);
}

.entity-hero.is-sticky.is-compact {
	inset-block-start: var(--page-header-sticky-offset);
}

.entity-hero-head,
.entity-hero-copy {
	display: grid;
	gap: var(--space-2);
}

.company-title {
	display: grid;
	gap: var(--space-2);
}

.company-title-name {
	display: block;
}

.stock-quote,
.entity-hero-meta-list,
.meta-list {
	display: grid;
	gap: var(--space-2);
}

.stock-price {
	margin: 0;
	font-weight: 800;
	line-height: 1.2;
}

.stock-date {
	margin: 0;
}

.entity-hero.is-compact {
	gap: var(--space-2);
	padding-block: var(--space-1);
}

.entity-hero.is-compact .entity-hero-head {
	align-items: start;
	row-gap: var(--space-2);
}

.entity-hero.is-compact .entity-hero-copy,
.entity-hero.is-compact .company-title {
	gap: var(--space-1);
}

.entity-hero.is-compact .company-title {
	line-height: 1.15;
}

.entity-hero.is-compact .stock-quote {
	gap: var(--space-1);
	align-self: start;
}

.entity-hero.is-compact .stock-price {
	line-height: 1.05;
	white-space: nowrap;
}

.entity-hero.is-compact .stock-date {
	line-height: 1.4;
}

.page-section {
	display: grid;
	gap: var(--space-3);
	inline-size: 100%;
	margin-block-start: var(--space-5);
}

.page-section-heading,
.page-panel-header {
	display: grid;
	gap: var(--space-2);
}

.page-section-heading-main,
.page-panel-heading {
	display: grid;
	gap: var(--space-1);
}

.page-section-title,
.page-panel-title,
.page-intro-title,
.company-title {
	scroll-margin-block-start: calc(
		var(--page-header-sticky-offset) +
		var(--space-2)
	);
}

.page-section-description,
.page-panel-description {
	line-height: 1.7;
}

.page-panel {
	display: grid;
	gap: var(--space-3);
	inline-size: 100%;
}

.page-panel.is-muted {
	background: transparent;
}

.page-panel.is-accent {
	background: transparent;
}

.page-panel.is-padding-compact {
	padding: var(--space-3);
}

.page-panel.is-padding-flush {
	padding: 0;
}

.page-panel.is-section-panel {
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
}

.page-scroll-region,
.scrollable-region {
	overflow-x: auto;
	overscroll-behavior-inline: contain;
	contain: inline-size paint;
	max-inline-size: 100%;
	min-inline-size: 0;
	background: var(--color-surface);
}

.page-scroll-region > *,
.scrollable-region > * {
	min-inline-size: 0;
}

.page-section-content > *,
.page-panel-body > * {
	min-inline-size: 0;
}

.page-scroll-region > :where(table),
.scrollable-region > :where(table) {
	min-inline-size: 42rem;
}

.table-card-main-cell {
	line-height: 1.5;
	overflow-wrap: anywhere;
}

.table-card-hidden-cell {
	display: table-cell;
}

.table-card-meta-cell {
	min-inline-size: 0;
	overflow-wrap: anywhere;
}

.table-card-meta-cell::before {
	content: none;
}

.page-row-link {
	display: inline-flex;
	flex-direction: column;
	gap: var(--space-1);
	text-decoration: underline;
}

.local-nav {
	display: flex;
	gap: var(--space-2);
	flex-wrap: wrap;
	padding-block: 0 var(--space-1);
}

.local-nav a {
	display: inline;
	min-block-size: 2.75rem;
	align-items: center;
	font-weight: 700;
}

.metric-grid {
	display: table;
	inline-size: 100%;
	border-collapse: collapse;
}

.metric-grid-pair {
	display: table;
}

.metric-card {
	display: table-row;
}

.metric-card dt,
.metric-card dd {
	display: table-cell;
	padding: 0.45rem 0.35rem;
	border-block-end: 1px solid var(--color-border);
	vertical-align: top;
}

.metric-card dt {
	inline-size: 42%;
	font-weight: 700;
	line-height: 1.5;
}

.metric-card dd {
	margin: 0;
	font-weight: 800;
	line-height: 1.35;
	text-align: end;
	overflow-wrap: anywhere;
}

.metric-card dd.is-positive {
	color: var(--color-positive);
}

.metric-card dd.is-negative {
	color: var(--color-negative);
}

.metric-note {
	display: block;
	margin: var(--space-1) 0 0;
	font-size: 0.9em;
	line-height: 1.6;
	font-weight: 400;
	text-align: start;
}

.tag-list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.tag {
	display: inline-flex;
	min-block-size: 2rem;
	align-items: center;
	padding-inline: var(--space-2);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-control);
	font-weight: 700;
	line-height: 1.3;
}

.tag-info {
	border-color: var(--color-info);
	background: var(--color-info-bg);
	color: var(--color-info);
}

.tag-success {
	border-color: var(--color-success);
	background: var(--color-success-bg);
	color: var(--color-success);
}

.tag-warning {
	border-color: var(--color-warning);
	background: var(--color-warning-bg);
	color: var(--color-warning);
}

.tag-danger {
	border-color: var(--color-danger);
	background: var(--color-danger-bg);
	color: var(--color-danger);
}

.status {
	display: inline-flex;
	min-block-size: 1.75rem;
	align-items: center;
	margin-block-start: var(--space-2);
	padding-inline: var(--space-2);
	border-radius: var(--radius-control);
	font-weight: 700;
}

.status-success {
	background: var(--color-success-bg);
	color: var(--color-success);
}

.status-danger {
	background: var(--color-danger-bg);
	color: var(--color-danger);
}

.status-info {
	background: var(--color-info-bg);
	color: var(--color-info);
}

.section-label {
	display: inline;
	inline-size: fit-content;
	font-weight: 700;
}

.meta-list {
	grid-template-columns: 1fr;
}

.meta-list > div {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--space-1);
}

.meta-list dt {
	font-size: 0.9em;
	font-weight: 700;
}

.meta-list dd {
	margin: 0;
}

.ranking-list {
	display: grid;
	gap: var(--space-2);
	margin: 0;
	padding-inline-start: 1.3rem;
}

.ranking-list li {
	padding-inline-end: var(--space-1);
}

.figure-card {
	display: grid;
	gap: var(--space-2);
	padding-block: var(--space-2);
	border-block: 1px solid var(--color-border);
	background: var(--color-surface);
}

.figure-card figcaption {
	font-size: 0.9em;
}

.note-card {
	padding: var(--space-3);
	border-block: 1px solid var(--color-border);
	background: transparent;
}

.data-list {
	display: grid;
	gap: var(--space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.data-list li {
	padding-block: var(--space-3);
	border-block-end: 1px solid var(--color-border);
}

.data-label {
	display: block;
	font-size: 0.9em;
	font-weight: 700;
}

.data-value {
	display: block;
	margin-block-start: var(--space-1);
	line-height: 1.35;
}

.card-scroller {
	display: grid;
	gap: var(--space-3);
	padding-block: var(--space-1);
}

.card-scroller > * {
	min-inline-size: 0;
}

.field {
	display: grid;
	gap: var(--space-1);
}

.field-label {
	font-weight: 700;
}

.input {
	min-block-size: 2.75rem;
	padding-inline: var(--space-3);
	border: 1px solid var(--color-border-strong);
	border-radius: var(--radius-control);
	background: var(--color-surface);
}

.assumption-form {
	display: grid;
	gap: var(--space-3);
}

.assumption-form .button {
	inline-size: fit-content;
}


/* source: site-shell.css */
/* Shared document-shell styles used by stock, J-REIT, and ETF. */
.site-footer {
	display: grid;
	gap: var(--space-2);
	padding: var(--space-5) var(--space-4);
	border-block-start: 1px solid var(--color-border);
}

.site-header {
	display: grid;
	gap: var(--space-2);
	padding: var(--space-3) var(--space-4);
	border-block-end: 1px solid var(--color-border);
	background: var(--color-surface);
}

.site-brand {
	inline-size: fit-content;
	font-weight: 800;
}

.site-search-tagline {
	margin: 0;
}

.site-nav {
	display: flex;
	gap: var(--space-2);
	flex-wrap: wrap;
}

.site-nav-link {
	font-weight: 700;
}

.site-nav-link.is-current {
	text-decoration-thickness: 0.16em;
}

.site-header.is-compact {
	gap: var(--space-2);
	padding: var(--space-3) var(--space-4);
}

.site-search {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: var(--space-2);
	align-items: stretch;
	inline-size: 100%;
	max-inline-size: 100%;
	min-inline-size: 0;
	margin: 0;
}

.site-search.is-not-found {
	inline-size: min(100%, 36rem);
	margin-block: var(--space-4) var(--space-2);
}

.site-search input {
	min-inline-size: 0;
	min-block-size: 2.75rem;
	padding-inline: var(--space-3);
	border: 1px solid var(--color-border-strong);
	border-radius: var(--radius-control);
	background: var(--color-surface);
}

.site-search button {
	min-inline-size: 0;
	min-block-size: 2.75rem;
	padding-inline: var(--space-3);
}


/* source: jreit-market.css */
/* Shared J-REIT market page styles. Keep this source-neutral for Astro and Askama. */
.jreit-top {
	display: grid;
	gap: 2rem;
}

.jreit-top-hero .page-intro-aside,
.directory-hero .page-intro-aside {
	padding: 0;
	border: 0;
	background: transparent;
}

.jreit-top-hero-side,
.stats-grid,
.digest-grid,
.ranking-grid,
.cluster-grid,
.featured-grid,
.directory-page,
.lookup-grid,
.filters-grid,
.results-grid {
	display: grid;
	gap: 1rem;
}

.jreit-top,
.directory-page {
	gap: 2rem;
}

.summary-card-list,
.cluster-card-list,
.entry-card-list,
.plain-list,
.ranking-list,
.cluster-members {
	margin: 0;
	padding: 0;
	list-style: none;
}

.summary-card-list-item,
.cluster-card-list-item,
.entry-card-list-item {
	list-style: none;
}

.stat-card,
.digest-card,
.ranking-card,
.cluster-card {
	height: 100%;
}

.plain-list,
.ranking-list,
.cluster-members {
	display: grid;
	gap: 0.8rem;
}

.plain-list li,
.ranking-list li {
	display: grid;
	gap: 0.2rem;
}

.plain-list li,
.plain-list a,
.ranking-link,
.cluster-members li a {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.8rem;
	text-decoration: none;
}

.plain-list a:hover,
.plain-list a:focus-visible,
.ranking-link:hover,
.ranking-link:focus-visible,
.cluster-members li a:hover,
.cluster-members li a:focus-visible {
	color: #0f766e;
}

.stat-label,
.stat-note {
	display: block;
}

.stat-value,
.digest-card-value {
	display: block;
	margin: 0.35rem 0;
	line-height: 1.1;
}

.digest-card-note,
.cluster-members li small,
.ranking-list li small {
	margin: 0;
}

.sparkline {
	width: 100%;
	height: 4.8rem;
}

.sparkline path {
	fill: none;
	stroke: #0f766e;
	stroke-width: 2.2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.sparkline-empty {
	height: 4.8rem;
	border-block: 1px solid var(--color-border);
}

.directory-summary-panel p {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	margin: 0;
}

.directory-summary-panel p + p {
	margin-top: 0.6rem;
}

.lookup-links,
.filter-links,
.entry-filter-links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
}

.lookup-chip,
.filter-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.25rem 0;
	color: #0f766e;
	text-decoration: underline;
}

.filter-chip span {
	min-width: 1.8rem;
	padding: 0.1rem 0.4rem;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-control);
	background: rgb(15 118 110 / 12%);
	text-align: center;
}

.filter-chip.is-active {
	background: #0f766e;
	color: #fff;
}

.filter-chip.is-active span {
	background: rgb(255 255 255 / 18%);
}

.empty-state {
	text-align: center;
}

.entry-card {
	display: grid;
	gap: 1.2rem;
	padding-block: var(--space-3);
	border-block-end: 1px solid var(--color-surface-border);
	background: var(--color-surface-base);
}

.entry-card-header h3 {
	margin: 0.2rem 0 0.4rem;
}

.entry-card-header a {
	text-decoration: none;
}

.entry-card-header a:hover,
.entry-card-header a:focus {
	color: #0f766e;
}

.entry-ticker {
	margin: 0;
	font-weight: 700;
	color: #0f766e;
}

.entry-subhead {
	margin: 0;
}

.entry-metrics {
	display: grid;
	gap: 0.8rem;
	margin: 0;
}

.entry-metrics div {
	padding-block: var(--space-2);
	border-block-end: 1px solid var(--color-border);
}

.entry-metrics dt {
	margin-bottom: 0.3rem;
}

.entry-metrics dd {
	margin: 0;
	font-weight: 700;
}

.entry-meta-row {
	display: grid;
	gap: 0.6rem;
}

.entry-meta {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	margin: 0;
}

.entry-chip {
	color: #0f766e;
	text-decoration: underline;
}

.tone-up {
	color: #047857;
}

.tone-down {
	color: #b91c1c;
}


/* source: jreit-detail.css */
/* Shared J-REIT detail page styles. Keep this source-neutral for Astro and Askama. */
.jreit-page {
	max-width: 72rem;
	margin: 0 auto;
	padding: 1.5rem 1rem 4rem;
}

.jreit-breadcrumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
	margin-bottom: 1.2rem;
}

.jreit-breadcrumbs a {
	color: #0f766e;
	text-decoration: none;
}

.jreit-entity-hero .entity-hero-aside {
	padding: 0;
	border: 0;
	background: transparent;
}

.jreit-hero-side,
.section-grid {
	display: grid;
	gap: 1rem;
}

.hero-side-panel strong {
	display: block;
	margin: 0.2rem 0 0.4rem;
}

.hero-meta-grid {
	display: grid;
	gap: 0.8rem;
	margin: 0;
}

.hero-meta-row,
.data-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 0.6rem 1rem;
	align-items: start;
	padding-bottom: 0.8rem;
	border-bottom: 0.1rem solid #e5e7eb;
}

.hero-meta-row:last-child,
.data-row:last-child {
	padding-bottom: 0;
	border-bottom: none;
}

.hero-meta-row dd,
.data-row dd {
	margin: 0;
	font-weight: 700;
	text-align: right;
}

.data-panel {
	height: 100%;
}

.jreit-summary-table {
	inline-size: 100%;
	border-collapse: collapse;
}

.jreit-summary-table tr {
	border-block-end: 1px solid var(--color-border);
}

.jreit-summary-table th,
.jreit-summary-table td {
	padding: var(--space-2) 0;
	vertical-align: top;
}

.jreit-summary-table th {
	font-weight: 600;
	text-align: start;
}

.jreit-summary-table td {
	font-weight: 700;
	text-align: end;
	font-variant-numeric: tabular-nums;
}

.jreit-summary-table .metric-note {
	display: block;
	margin-block-start: var(--space-1);
	font-size: 0.9em;
	font-weight: 400;
	line-height: 1.6;
	text-align: start;
	white-space: normal;
}

.data-list {
	display: grid;
	gap: 0.9rem;
	margin: 0;
}

.data-row-note {
	grid-column: 1 / -1;
	margin: -0.2rem 0 0;
}

.factor-list {
	display: grid;
	gap: 0.8rem;
	margin: 1rem 0 0;
	padding: 0;
	list-style: none;
}

.factor-item {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding-block: var(--space-2);
	border-block-end: 1px solid var(--color-border);
}

.notes-details {
	border-block: 1px solid var(--color-border);
	padding-block: var(--space-2);
}

.notes-list {
	margin: 0;
}
