/* Economy: releases vs the market, in the site's palette */
.ec-main { max-width: 1240px; margin: 0 auto; padding: 28px 24px 40px; }
.ec-main h1 { font-family: var(--display, inherit); font-size: clamp(30px, 4vw, 42px); margin: 0 0 6px; letter-spacing: -0.01em; }
.ec-sub { margin: 0 0 18px; color: var(--graphite, #5F5557); font-size: 15px; max-width: 760px; }
.ec-h { font-size: 12px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--graphite, #5F5557); margin: 22px 0 10px; }
.ec-next { margin-bottom: 4px; }
.nx-row { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 4px; scrollbar-width: thin; }
.nx { flex: none; display: grid; gap: 1px; min-width: 132px; padding: 10px 13px; border: 1px solid #E7E1E2; border-radius: 12px; background: #fff; color: inherit; text-decoration: none; }
.nx:hover { border-color: #7A1E2C; }
.nx-d { font-size: 12px; font-weight: 800; color: #7A1E2C; }
.nx-t { font-size: 11.5px; color: var(--graphite, #5F5557); }
.nx b { font-size: 14.5px; margin-top: 3px; }
.nx-r { font-size: 12px; color: var(--graphite, #5F5557); }

.ec-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; }
.ec-card { display: flex; flex-direction: column; gap: 6px; padding: 16px 16px 14px; border: 1px solid #E7E1E2; border-radius: 14px; background: #fff; color: inherit; text-decoration: none; transition: border-color .15s, box-shadow .15s; }
.ec-card:hover { border-color: #7A1E2C; box-shadow: 0 6px 18px -12px rgba(74, 19, 32, 0.45); }
.ec-ch h2 { font-size: 19px; margin: 0; line-height: 1.2; }
.ec-ch span { display: block; font-size: 12.5px; color: var(--graphite, #5F5557); }
.ec-latest { margin: 2px 0 0; font-size: 12.5px; color: var(--graphite, #5F5557); }
.ec-lead { display: flex; align-items: baseline; gap: 8px; }
.ec-lead b { font-size: 32px; letter-spacing: -0.01em; font-variant-numeric: tabular-nums; }
.ec-lead span { font-size: 13px; color: var(--graphite, #5F5557); }
.ec-rest { margin: 0; font-size: 13px; color: #3F3739; line-height: 1.5; }
.ec-pills { display: flex; flex-wrap: wrap; gap: 6px; }
.pill { display: inline-block; font-size: 12px; font-weight: 700; padding: 2px 9px; border-radius: 999px; border: 1px solid transparent; white-space: nowrap; }
.pill.c-warm { background: #FFF4E5; color: #9A4A06; border-color: #F6D3A8; }
.pill.c-cool { background: #EAF2FB; color: #1E5A96; border-color: #C3D9F0; }
.pill.c-even, .pill.c-none { background: #F3F0F0; color: #5F5557; border-color: #E2DCDD; }
.pill.v-good { background: #EAF6EF; color: #157F4C; border-color: #BFE3CE; }
.pill.v-mid { background: #FFF6E8; color: #B45309; border-color: #F3D9B1; }
.pill.v-bad { background: #FDECEC; color: #C0262D; border-color: #F3C3C5; }
.pill.v-none { background: #F3F0F0; color: #5F5557; }
.pill.v-alt1 { background: #E6F5F3; color: #0F766E; border-color: #B5E0DA; } /* JOLTS: Confirming */
.pill.v-alt2 { background: #F1ECFC; color: #6D28D9; border-color: #D8CBF6; } /* JOLTS: Breaking */
.ec-spy { margin: 0; font-size: 13px; color: #3F3739; }
.up { color: #157F4C; } .down { color: #C0262D; }
.ec-bars { width: 100%; height: auto; display: block; margin-top: 2px; }
.ec-zero { stroke: #E2DCDD; stroke-width: 1; }
.ec-ax { font-size: 10px; fill: #8A8183; }
.ec-rec { margin: 0; font-size: 12px; color: var(--graphite, #5F5557); }
.t-good { color: #157F4C; font-weight: 700; } .t-mid { color: #B45309; font-weight: 700; } .t-bad { color: #C0262D; font-weight: 700; } .t-alt1 { color: #0F766E; font-weight: 700; } .t-alt2 { color: #6D28D9; font-weight: 700; }
.ec-nextline { margin: 0; font-size: 12.5px; color: #3F3739; }
.ec-more { margin-top: auto; padding-top: 4px; font-size: 13px; font-weight: 700; color: #7A1E2C; }

.ec-back { margin: 6px 0 4px; } .ec-back a { color: #7A1E2C; font-weight: 700; text-decoration: none; }
.ec-dh h2 { font-size: 26px; margin: 4px 0 4px; } .ec-dh h2 span { font-size: 15px; font-weight: 600; color: var(--graphite, #5F5557); margin-left: 6px; }
.ec-dh p { margin: 0 0 6px; color: #3F3739; max-width: 860px; }
.ec-dgrid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 14px; margin-top: 8px; }
.ec-panel { border: 1px solid #E7E1E2; border-radius: 14px; padding: 4px 16px 14px; background: #fff; }
.ec-key { margin: 6px 0 0; font-size: 12px; color: var(--graphite, #5F5557); }
.ec-key .k { display: inline-block; width: 10px; height: 10px; border-radius: 2px; margin: 0 4px 0 8px; vertical-align: -1px; }
.ec-key .k:first-child { margin-left: 0; }
.k.good { background: #157F4C; } .k.mid { background: #B45309; } .k.bad { background: #C0262D; } .k.alt1 { background: #0F766E; } .k.alt2 { background: #6D28D9; }
.ec-st { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.ec-st th { text-align: left; font-size: 11.5px; color: var(--graphite, #5F5557); font-weight: 600; padding: 4px 6px; border-bottom: 1px solid #EFE9EA; }
.ec-st td { padding: 7px 6px; border-bottom: 1px solid #F3EFEF; }
.ec-sm { margin: 8px 0 0; font-size: 12px; color: var(--graphite, #5F5557); }
.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ec-tw { overflow-x: auto; border: 1px solid #E7E1E2; border-radius: 14px; background: #fff; }
.ec-t { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.ec-t th { position: sticky; top: 0; background: #FAF7F7; text-align: left; font-size: 11.5px; font-weight: 700; color: var(--graphite, #5F5557); padding: 9px 10px; border-bottom: 1px solid #E7E1E2; white-space: nowrap; }
.ec-t th.num { text-align: right; }
.ec-t td { padding: 9px 10px; border-bottom: 1px solid #F3EFEF; vertical-align: middle; white-space: nowrap; }
.ec-t tr.ec-cx td { color: #8A8183; font-style: italic; }
.ec-t tr.ec-note td { white-space: normal; background: #FBF9F9; color: #3F3739; font-size: 13.5px; line-height: 1.55; padding: 10px 14px 14px; }
.ec-nb { all: unset; cursor: pointer; font-size: 12px; font-weight: 700; color: #7A1E2C; padding: 3px 10px; border: 1px solid #E7E1E2; border-radius: 999px; background: #fff; }
.ec-nb:hover, .ec-nb[aria-expanded="true"] { border-color: #7A1E2C; }
.ec-nb:focus-visible, .ec-card:focus-visible, .nx:focus-visible { outline: 2px solid #7A1E2C; outline-offset: 2px; }
.ec-how { margin-top: 22px; padding: 12px 16px; border-radius: 12px; background: #FAF7F7; font-size: 13px; color: #3F3739; line-height: 1.55; }
.ec-how p { margin: 0; }

@media (max-width: 860px) { .ec-dgrid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 640px) {
  .ec-main { padding: 20px 16px 28px; }
  .ec-grid { grid-template-columns: minmax(0, 1fr); }
  /* the history table becomes a card per release */
  .ec-tw { border: 0; background: transparent; overflow: visible; }
  .ec-t, .ec-t tbody { display: block; } .ec-t thead { display: none; }
  .ec-t tr:not(.ec-note) { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 12px; padding: 12px 14px; margin-bottom: 8px; border: 1px solid #E7E1E2; border-radius: 12px; background: #fff; }
  .ec-t td { display: block; padding: 0; border: 0; white-space: normal; text-align: left; }
  .ec-t td[data-l]::before { content: attr(data-l); display: block; font-size: 10.5px; font-weight: 600; color: #8A8183; }
  .ec-t td:first-child { grid-column: 1 / -1; font-weight: 700; }
  .ec-t tr.ec-note { display: block; margin: -6px 0 10px; } .ec-t tr.ec-note td { border-radius: 0 0 12px 12px; }
  .ec-t tr.ec-cx { display: block; }
}

/* ===== dark theme (cobalt and black): generated from the rules above; edit those, then regenerate ===== */
:where(html[data-theme="dark"]) .ec-sub { color: var(--graphite, #B0B9C8); }
:where(html[data-theme="dark"]) .ec-h { color: var(--graphite, #B0B9C8); }
:where(html[data-theme="dark"]) .nx { border: 1px solid #222B3A; background: #0F131B; }
:where(html[data-theme="dark"]) .nx:hover { border-color: #2F6BFF; }
:where(html[data-theme="dark"]) .nx-d { color: #5B8CFF; }
:where(html[data-theme="dark"]) .nx-t { color: var(--graphite, #B0B9C8); }
:where(html[data-theme="dark"]) .nx-r { color: var(--graphite, #B0B9C8); }
:where(html[data-theme="dark"]) .ec-card { border: 1px solid #222B3A; background: #0F131B; }
:where(html[data-theme="dark"]) .ec-card:hover { border-color: #2F6BFF; box-shadow: 0 6px 18px -12px rgba(47, 107, 255, 0.585); }
:where(html[data-theme="dark"]) .ec-ch span { color: var(--graphite, #B0B9C8); }
:where(html[data-theme="dark"]) .ec-latest { color: var(--graphite, #B0B9C8); }
:where(html[data-theme="dark"]) .ec-lead span { color: var(--graphite, #B0B9C8); }
:where(html[data-theme="dark"]) .ec-rest { color: #C4CBD6; }
:where(html[data-theme="dark"]) .pill.c-warm { background: #33240F; color: #FDA154; border-color: #5C401F; }
:where(html[data-theme="dark"]) .pill.c-cool { background: #0F2033; color: #6CA8E5; border-color: #1F3D5C; }
:where(html[data-theme="dark"]) .pill.c-even, :where(html[data-theme="dark"]) .pill.c-none { background: #121722; color: #B0B9C8; border-color: #222B3A; }
:where(html[data-theme="dark"]) .pill.v-good { background: #142E1F; color: #67EAAB; border-color: #255539; }
:where(html[data-theme="dark"]) .pill.v-mid { background: #33250F; color: #FB9D56; border-color: #5C441F; }
:where(html[data-theme="dark"]) .pill.v-bad { background: #330F0F; color: #E56B71; border-color: #5C1F21; }
:where(html[data-theme="dark"]) .pill.v-none { background: #121722; color: #B0B9C8; }
:where(html[data-theme="dark"]) .pill.v-alt1 { background: #132F2C; color: #62EFE4; }
:where(html[data-theme="dark"]) .pill.v-alt2 { background: #1A0F33; color: #9A69E8; border-color: #311F5C; }
:where(html[data-theme="dark"]) .ec-spy { color: #C4CBD6; }
:where(html[data-theme="dark"]) .up { color: #67EAAB; }
:where(html[data-theme="dark"]) .down { color: #E56B71; }
:where(html[data-theme="dark"]) .ec-zero { stroke: #222B3A; }
:where(html[data-theme="dark"]) .ec-ax { fill: #93A0B4; }
:where(html[data-theme="dark"]) .ec-rec { color: var(--graphite, #B0B9C8); }
:where(html[data-theme="dark"]) .t-good { color: #67EAAB; }
:where(html[data-theme="dark"]) .t-mid { color: #FB9D56; }
:where(html[data-theme="dark"]) .t-bad { color: #E56B71; }
:where(html[data-theme="dark"]) .t-alt1 { color: #62EFE4; }
:where(html[data-theme="dark"]) .t-alt2 { color: #9A69E8; }
:where(html[data-theme="dark"]) .ec-nextline { color: #C4CBD6; }
:where(html[data-theme="dark"]) .ec-more { color: #5B8CFF; }
:where(html[data-theme="dark"]) .ec-back a { color: #5B8CFF; }
:where(html[data-theme="dark"]) .ec-dh h2 span { color: var(--graphite, #B0B9C8); }
:where(html[data-theme="dark"]) .ec-dh p { color: #C4CBD6; }
:where(html[data-theme="dark"]) .ec-panel { border: 1px solid #222B3A; background: #0F131B; }
:where(html[data-theme="dark"]) .ec-key { color: var(--graphite, #B0B9C8); }
:where(html[data-theme="dark"]) .k.alt2 { background: #5C25B1; }
:where(html[data-theme="dark"]) .ec-st th { color: var(--graphite, #B0B9C8); border-bottom: 1px solid #222B3A; }
:where(html[data-theme="dark"]) .ec-st td { border-bottom: 1px solid #222B3A; }
:where(html[data-theme="dark"]) .ec-sm { color: var(--graphite, #B0B9C8); }
:where(html[data-theme="dark"]) .ec-tw { border: 1px solid #222B3A; background: #0F131B; }
:where(html[data-theme="dark"]) .ec-t th { background: #0F131B; color: var(--graphite, #B0B9C8); border-bottom: 1px solid #222B3A; }
:where(html[data-theme="dark"]) .ec-t td { border-bottom: 1px solid #222B3A; }
:where(html[data-theme="dark"]) .ec-t tr.ec-cx td { color: #93A0B4; }
:where(html[data-theme="dark"]) .ec-t tr.ec-note td { background: #0F131B; color: #C4CBD6; }
:where(html[data-theme="dark"]) .ec-nb { color: #5B8CFF; border: 1px solid #222B3A; background: #0F131B; }
:where(html[data-theme="dark"]) .ec-nb:hover, :where(html[data-theme="dark"]) .ec-nb[aria-expanded="true"] { border-color: #2F6BFF; }
:where(html[data-theme="dark"]) .ec-nb:focus-visible, :where(html[data-theme="dark"]) .ec-card:focus-visible, :where(html[data-theme="dark"]) .nx:focus-visible { outline: 2px solid #2F6BFF; }
:where(html[data-theme="dark"]) .ec-how { background: #0F131B; color: #C4CBD6; }
@media (max-width: 640px) {
:where(html[data-theme="dark"]) .ec-t tr:not(.ec-note) { border: 1px solid #222B3A; background: #0F131B; }
:where(html[data-theme="dark"]) .ec-t td[data-l]::before { color: #93A0B4; }
}
