/* Focused Election Coverage reader */

.top-media-panel-link.ecm-open {
  font-size: 10px;
}

body.ecm-is-open {
  overflow: hidden;
}

.ecm-overlay {
  position: fixed;
  inset: 0;
  z-index: 12000;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(0, 7, 13, .86);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.ecm-overlay[hidden] {
  display: none;
}

.ecm-dialog {
  display: grid;
  grid-template-rows:
    auto minmax(0, 1fr);
  width:
    min(1080px, calc(100vw - 48px));
  height:
    min(720px, calc(100dvh - 48px));
  min-height: 0;
  overflow: hidden;
  border: 1px solid #285675;
  border-radius: 4px;
  background: #061421;
  color: #e9f4fa;
  box-shadow:
    0 28px 78px rgba(0, 0, 0, .62);
}

.ecm-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 66px;
  padding: 12px 14px 12px 16px;
  border-bottom: 1px solid #21445d;
  background: #071a2a;
}

.ecm-heading {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.ecm-heading h2 {
  margin: 0;
  color: #eef8fc;
  font-size: 16px;
  font-weight: 760;
  letter-spacing: .045em;
  line-height: 1.15;
  text-transform: uppercase;
}

.ecm-heading p {
  margin: 0;
  color: #91aebe;
  font-size: 10.5px;
  line-height: 1.35;
}

.ecm-header-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 0 0 auto;
}

.ecm-updated {
  color: #8da8b8;
  font-size: 10px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.ecm-close {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 1px solid #315d79;
  border-radius: 3px;
  background: #081e2f;
  color: #dcebf3;
  font: inherit;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
}

.ecm-close:hover {
  border-color: var(--cyan);
  color: #ffffff;
}

.ecm-close:focus-visible,
.ecm-toolbar input:focus-visible,
.ecm-toolbar select:focus-visible,
.ecm-feed-source:focus-visible,
.ecm-feed-list:focus-visible {
  outline: 2px solid var(--cyan);
  outline-offset: 2px;
}

.ecm-body {
  min-height: 0;
  overflow: hidden;
}

.ecm-shell {
  display: grid;
  grid-template-rows:
    auto minmax(0, 1fr) auto;
  height: 100%;
  min-height: 0;
}

.ecm-toolbar {
  display: grid;
  gap: 8px;
  padding: 10px;
  border-bottom: 1px solid #1c4058;
  background: #061827;
}

.ecm-toolbar.has-candidate-filter {
  grid-template-columns:
    minmax(220px, 1.5fr)
    repeat(3, minmax(145px, .82fr));
}

.ecm-toolbar.without-candidate-filter {
  grid-template-columns:
    minmax(300px, 1.7fr)
    repeat(2, minmax(160px, .8fr));
}

.ecm-search-control,
.ecm-select-control {
  position: relative;
  min-width: 0;
}

.ecm-search-control > span {
  position: absolute;
  top: 50%;
  left: 11px;
  z-index: 1;
  color: #6f91a4;
  font-size: 18px;
  transform: translateY(-53%);
  pointer-events: none;
}

.ecm-toolbar input,
.ecm-toolbar select {
  box-sizing: border-box;
  width: 100%;
  min-height: 36px;
  border: 1px solid #294e68;
  border-radius: 2px;
  background: #071522;
  color: #e1edf3;
  font: inherit;
  font-size: 11px;
}

.ecm-toolbar input {
  padding: 7px 10px 7px 34px;
}

.ecm-toolbar select {
  padding: 7px 30px 7px 10px;
}

.ecm-toolbar input::placeholder {
  color: #829cab;
  opacity: 1;
}

.ecm-toolbar input:hover,
.ecm-toolbar select:hover {
  border-color: #3a6b89;
}

.ecm-toolbar select:disabled {
  color: #627d8d;
  cursor: not-allowed;
  opacity: .72;
}

.ecm-workspace {
  display: grid;
  grid-template-columns:
    minmax(0, 3fr)
    minmax(225px, 1fr);
  min-height: 0;
  overflow: hidden;
}

.ecm-feed {
  display: grid;
  grid-template-rows:
    auto minmax(0, 1fr);
  min-width: 0;
  min-height: 0;
  border-right: 1px solid #1d4259;
}

.ecm-feed-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 38px;
  padding: 8px 11px;
  border-bottom: 1px solid #1a3b52;
  background: #071928;
}

.ecm-feed-header h3,
.ecm-snapshot h3 {
  margin: 0;
  color: #3bd6ff;
  font-size: 10.5px;
  font-weight: 760;
  letter-spacing: .075em;
  line-height: 1.25;
  text-transform: uppercase;
}

.ecm-feed-header > span {
  color: #8ca9b9;
  font-size: 10px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.ecm-feed-list {
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-color:
    #315f79 #061522;
  scrollbar-width: thin;
}

.ecm-feed-list::-webkit-scrollbar {
  width: 7px;
}

.ecm-feed-list::-webkit-scrollbar-track {
  background: #061522;
}

.ecm-feed-list::-webkit-scrollbar-thumb {
  border: 2px solid #061522;
  border-radius: 999px;
  background: #315f79;
}

.ecm-feed-row {
  position: relative;
  display: grid;
  grid-template-columns:
    82px
    108px
    minmax(0, 1fr)
    auto;
  align-items: center;
  gap: 10px;
  min-height: 60px;
  padding: 8px 10px 8px 12px;
  border-bottom: 1px solid #15354a;
  background: #061522;
}

.ecm-feed-row:nth-child(even) {
  background: #071826;
}

.ecm-feed-row::before {
  position: absolute;
  top: 8px;
  bottom: 8px;
  left: 0;
  width: 2px;
  background: #9976ef;
  content: "";
  opacity: .82;
}

.ecm-feed-row:hover {
  background: #092033;
}

.ecm-feed-time {
  display: grid;
  gap: 3px;
  color: #91aab8;
  font-size: 10px;
  font-variant-numeric: tabular-nums;
  line-height: 1.2;
}

.ecm-feed-time small {
  color: #67cdb5;
  font-size: 10px;
}

.ecm-feed-publisher {
  min-width: 0;
  overflow: hidden;
  color: #b89cff;
  font-size: 10.5px;
  font-weight: 720;
  line-height: 1.3;
  text-overflow: ellipsis;
}

.ecm-feed-copy {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.ecm-feed-copy h4 {
  margin: 0;
  color: #edf6fa;
  font-size: 13px;
  font-weight: 620;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.ecm-feed-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.ecm-feed-tags span {
  max-width: 150px;
  overflow: hidden;
  padding: 2px 6px;
  border: 1px solid #28516d;
  border-radius: 2px;
  background: #082034;
  color: #75c8e7;
  font-size: 9.5px;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ecm-feed-action {
  display: flex;
  justify-content: flex-end;
}

.ecm-feed-source {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 30px;
  padding: 5px 7px;
  border: 1px solid transparent;
  color: #42d8ff;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
}

.ecm-feed-source:hover {
  border-color: #2d607d;
  background: #082238;
  color: #d7f8ff;
}

.ecm-source-unavailable {
  color: #6e8796;
  font-size: 10px;
  line-height: 1.2;
  text-align: right;
}

.ecm-empty {
  display: grid;
  place-items: center;
  align-content: center;
  gap: 6px;
  min-height: 180px;
  padding: 24px;
  color: #8ca6b5;
  font-size: 11px;
  text-align: center;
}

.ecm-empty strong {
  color: #d9e8ef;
  font-size: 13px;
}

.ecm-snapshot {
  min-width: 0;
  padding: 12px;
  overflow: hidden;
  background: #061827;
}

.ecm-snapshot-metrics {
  display: grid;
  gap: 0;
  margin: 10px 0 16px;
}

.ecm-snapshot-metrics > div {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 0;
  border-bottom: 1px solid #17384e;
}

.ecm-snapshot-metrics > div.is-window {
  display: grid;
  gap: 4px;
}

.ecm-snapshot-metrics dt {
  color: #8fa8b7;
  font-size: 10px;
}

.ecm-snapshot-metrics dd {
  margin: 0;
  color: #edf6fa;
  font-size: 12px;
  font-variant-numeric: tabular-nums;
  font-weight: 720;
  text-align: right;
}

.ecm-snapshot-metrics .is-window dd {
  color: #b9ccd6;
  font-size: 10px;
  font-weight: 600;
  text-align: left;
}

.ecm-publisher-section {
  padding-top: 2px;
}

.ecm-publisher-section h4 {
  margin: 0 0 10px;
  color: #3bd6ff;
  font-size: 10px;
  font-weight: 760;
  letter-spacing: .065em;
  text-transform: uppercase;
}

.ecm-publisher-list {
  display: grid;
  gap: 9px;
}

.ecm-publisher-row {
  display: grid;
  grid-template-columns:
    minmax(80px, 1fr)
    minmax(55px, .8fr)
    24px;
  align-items: center;
  gap: 7px;
  min-width: 0;
}

.ecm-publisher-row > span {
  min-width: 0;
  overflow: hidden;
  color: #cbdbe3;
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ecm-publisher-row > i {
  position: relative;
  display: block;
  height: 5px;
  overflow: hidden;
  background: #07121d;
}

.ecm-publisher-row > i > b {
  position: absolute;
  inset: 0 auto 0 0;
  width: var(--ecm-publisher-width);
  background: #8d6de3;
}

.ecm-publisher-row > strong {
  color: #d8caff;
  font-size: 10px;
  font-variant-numeric: tabular-nums;
  text-align: right;
}

.ecm-topic-section {
  margin-top: 18px;
  padding-top: 13px;
  border-top: 1px solid #17384e;
}

.ecm-topic-section h4 {
  margin: 0 0 9px;
  color: #3bd6ff;
  font-size: 10px;
  font-weight: 760;
  letter-spacing: .055em;
  line-height: 1.3;
  text-transform: uppercase;
}

.ecm-topic-section h4 small {
  color: #7895a6;
  font-size: 9px;
  font-weight: 650;
  letter-spacing: .025em;
}

.ecm-topic-list {
  display: grid;
}

.ecm-topic-row {
  display: grid;
  grid-template-columns:
    minmax(0, 1fr)
    28px;
  align-items: center;
  gap: 8px;
  min-height: 29px;
  border-bottom: 1px solid #15354a;
}

.ecm-topic-row > span {
  min-width: 0;
  overflow: hidden;
  color: #c8d9e2;
  font-size: 9.5px;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ecm-topic-row > strong {
  padding: 4px 3px;
  border-left: 2px solid #8d6de3;
  background: rgba(141, 109, 227, .09);
  color: #d7c8ff;
  font-size: 9.5px;
  font-variant-numeric: tabular-nums;
  text-align: center;
}
.ecm-snapshot-empty {
  color: #819aa9;
  font-size: 10px;
}

.ecm-disclosure {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 34px;
  padding: 7px 12px;
  border-top: 1px solid #1d4259;
  background: #05131f;
  color: #8ca5b4;
  font-size: 10px;
  line-height: 1.3;
}

.ecm-disclosure > span:first-child {
  color: #55cde9;
  font-size: 14px;
}

.ecm-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

@media (max-width: 1000px) {
  .ecm-dialog {
    width:
      min(960px, calc(100vw - 32px));
    height:
      min(760px, calc(100dvh - 32px));
  }

  .ecm-toolbar.has-candidate-filter,
  .ecm-toolbar.without-candidate-filter {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }

  .ecm-workspace {
    grid-template-columns:
      minmax(0, 2.7fr)
      minmax(210px, 1fr);
  }

  .ecm-feed-row {
    grid-template-columns:
      74px
      96px
      minmax(0, 1fr);
  }

  .ecm-feed-action {
    grid-column: 3;
    justify-content: flex-start;
  }
}

@media (max-width: 768px) {
  .ecm-overlay {
    padding: 8px;
  }

  .ecm-dialog {
    width: calc(100vw - 16px);
    height: calc(100dvh - 16px);
  }

  .ecm-header {
    align-items: flex-start;
    min-height: 76px;
    padding: 11px;
  }

  .ecm-heading h2 {
    font-size: 14px;
  }

  .ecm-header-actions {
    gap: 7px;
  }

  .ecm-updated {
    display: none;
  }

  .ecm-body {
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .ecm-shell {
    display: block;
    height: auto;
    min-height: 100%;
  }

  .ecm-toolbar {
    padding: 9px;
  }

  .ecm-toolbar.has-candidate-filter,
  .ecm-toolbar.without-candidate-filter {
    grid-template-columns:
      minmax(0, 1fr);
  }

  .ecm-toolbar input,
  .ecm-toolbar select {
    min-height: 42px;
    font-size: 12px;
  }

  .ecm-workspace {
    display: flex;
    flex-direction: column;
    min-height: auto;
    overflow: visible;
  }

  .ecm-snapshot {
    order: -1;
    border-bottom: 1px solid #1d4259;
  }

  .ecm-feed {
    min-height: auto;
    border-right: 0;
  }

  .ecm-feed-list {
    overflow: visible;
    scrollbar-gutter: auto;
  }

  .ecm-feed-row {
    grid-template-columns:
      76px
      minmax(0, 1fr);
    align-items: start;
    min-height: 0;
    padding: 11px 10px 11px 12px;
  }

  .ecm-feed-time {
    grid-row: 1 / 4;
  }

  .ecm-feed-publisher,
  .ecm-feed-copy,
  .ecm-feed-action {
    grid-column: 2;
  }

  .ecm-feed-copy h4 {
    font-size: 13px;
  }

  .ecm-feed-action {
    justify-content: flex-start;
  }

  .ecm-disclosure {
    min-height: 42px;
  }
}

@media (max-width: 430px) {
  .ecm-header {
    gap: 8px;
  }

  .ecm-heading p {
    font-size: 10px;
  }

  .ecm-close {
    width: 38px;
    height: 38px;
  }

  .ecm-feed-header {
    align-items: flex-start;
    flex-direction: column;
    gap: 3px;
  }

  .ecm-feed-row {
    grid-template-columns:
      68px
      minmax(0, 1fr);
    gap: 8px;
  }

  .ecm-snapshot-metrics > div {
    padding-block: 7px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ecm-overlay,
  .ecm-dialog,
  .ecm-feed-row,
  .ecm-feed-source {
    scroll-behavior: auto;
    transition: none;
  }
}

/* FR27 TABBED COVERAGE TERMINAL — 2026-07 */

.ecm-overlay {
  padding: 24px;
  background: rgba(1, 8, 15, .86);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.ecm-dialog {
  display: grid;
  grid-template-rows:
    36px minmax(0, 1fr);
  width:
    min(780px, calc(100vw - 48px));
  height:
    min(650px, calc(100dvh - 48px));
  min-height: 0;
  overflow: hidden;
  border: 1px solid #28617e;
  border-radius: 3px;
  background: #061522;
  color: #e9f4fa;
  box-shadow:
    0 22px 62px rgba(0, 0, 0, .62);
}

.ecm-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 36px;
  min-height: 36px;
  gap: 12px;
  padding: 4px 7px 4px 10px;
  border-bottom: 1px solid #21445d;
  background: #061522;
}

.ecm-heading {
  display: flex;
  align-items: center;
  min-width: 0;
}

.ecm-heading h2,
.ecm-header h2 {
  margin: 0;
  color: #edf7fc;
  font-family:
    ui-monospace,
    SFMono-Regular,
    Consolas,
    monospace;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .075em;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
}

.ecm-heading p {
  display: none;
}

.ecm-header-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.ecm-updated {
  color: #82a1b2;
  font-size: 8px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.ecm-close {
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  padding: 0;
  border: 1px solid #315d79;
  border-radius: 1px;
  background: #071c2b;
  color: #dcebf3;
  font: inherit;
  font-size: 17px;
  line-height: 1;
  cursor: pointer;
}

.ecm-close:hover {
  border-color: #35d5ff;
  color: #ffffff;
}

.ecm-body {
  min-height: 0;
  overflow: hidden;
}

.ecm-shell {
  display: grid;
  grid-template-rows:
    minmax(0, 1fr) 24px;
  height: 100%;
  min-height: 0;
}

.ecm-tabs {
  display: flex;
  align-items: stretch;
  gap: 0;
  padding: 0 8px;
  border-bottom: 1px solid #1c4058;
  background: #05121d;
}

.ecm-tabs button {
  position: relative;
  min-width: 126px;
  padding: 0 13px;
  border: 0;
  background: transparent;
  color: #7795a6;
  font: inherit;
  font-size: 9px;
  font-weight: 700;
  cursor: pointer;
}

.ecm-tabs button::after {
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 0;
  height: 2px;
  background: transparent;
  content: "";
}

.ecm-tabs button[aria-selected="true"] {
  color: #edf7fc;
}

.ecm-tabs button[aria-selected="true"]::after {
  background: #35d5ff;
}

.ecm-tabs button:focus-visible {
  outline: 1px solid #35d5ff;
  outline-offset: -2px;
}

.ecm-tab-panels,
.ecm-tab-panel {
  min-height: 0;
  height: 100%;
  overflow: hidden;
}

.ecm-tab-panel[hidden] {
  display: none;
}

.ecm-coverage-panel {
  display: grid;
  grid-template-rows:
    32px 22px minmax(0, 1fr);
}

.ecm-toolbar {
  display: grid;
  align-items: center;
  gap: 5px;
  padding: 3px 6px;
  border-bottom: 1px solid #1c4058;
  background: #05121d;
}

.ecm-toolbar.has-candidate-filter {
  grid-template-columns:
    minmax(205px, 1.45fr)
    repeat(3, minmax(105px, .72fr));
}

.ecm-toolbar.without-candidate-filter {
  grid-template-columns:
    minmax(260px, 1.55fr)
    repeat(2, minmax(120px, .72fr));
}

.ecm-toolbar input,
.ecm-toolbar select {
  box-sizing: border-box;
  width: 100%;
  min-height: 25px;
  border: 1px solid #294e68;
  border-radius: 1px;
  background: #061522;
  color: #dce9ef;
  font: inherit;
  font-size: 8px;
}

.ecm-toolbar input {
  padding: 3px 7px 3px 27px;
}

.ecm-toolbar select {
  padding: 3px 23px 3px 7px;
}

.ecm-search-control > span {
  left: 8px;
  color: #6f91a4;
  font-size: 13px;
}

.ecm-toolbar input:focus-visible,
.ecm-toolbar select:focus-visible,
.ecm-feed-source:focus-visible,
.ecm-feed-list:focus-visible,
.ecm-close:focus-visible {
  outline: 1px solid #35d5ff;
  outline-offset: -1px;
}

.ecm-coverage-summary {
  display: flex;
  align-items: center;
  gap: 0;
  overflow: hidden;
  border-bottom: 1px solid #193d55;
  background: #071827;
  color: #7f9cab;
  font-size: 7.5px;
  white-space: nowrap;
}

.ecm-coverage-summary span {
  padding: 0 8px;
  border-right: 1px solid #17384e;
}

.ecm-feed {
  display: grid;
  grid-template-rows:
    25px minmax(0, 1fr);
  min-width: 0;
  min-height: 0;
  background: #061522;
}

.ecm-feed-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 25px;
  gap: 8px;
  padding: 0 8px;
  border-bottom: 1px solid #193d55;
  background: #05121d;
}

.ecm-feed-header h3,
.ecm-module header h3 {
  margin: 0;
  color: #35d5ff;
  font-size: 8.5px;
  font-weight: 800;
  letter-spacing: .065em;
  line-height: 1;
  text-transform: uppercase;
}

.ecm-feed-header > span {
  color: #7f9cab;
  font-size: 7.5px;
}

.ecm-feed-list {
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-color:
    #315f79 #061522;
  scrollbar-width: thin;
}

.ecm-feed-list::-webkit-scrollbar {
  width: 6px;
}

.ecm-feed-list::-webkit-scrollbar-track {
  background: #061522;
}

.ecm-feed-list::-webkit-scrollbar-thumb {
  border: 2px solid #061522;
  border-radius: 999px;
  background: #315f79;
}

.ecm-feed-row {
  position: relative;
  display: grid;
  grid-template-columns:
    57px
    98px
    minmax(0, 1fr)
    66px;
  align-items: center;
  gap: 6px;
  min-height: 43px;
  padding: 4px 6px 4px 9px;
  border-bottom: 1px solid #15354a;
  background: #061522;
}

.ecm-feed-row:nth-child(even) {
  background: #061725;
}

.ecm-feed-row::before {
  position: absolute;
  top: 6px;
  bottom: 6px;
  left: 0;
  width: 2px;
  background: #8d6de3;
  content: "";
}

.ecm-feed-row:hover {
  background: #082033;
}

.ecm-feed-time {
  display: grid;
  gap: 1px;
  color: #8ca6b5;
  font-size: 7.5px;
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
}

.ecm-feed-time small {
  color: #5fcab4;
  font-size: 7.5px;
}

.ecm-feed-publisher {
  min-width: 0;
  overflow: hidden;
  color: #b69aff;
  font-size: 8px;
  font-weight: 700;
  line-height: 1.15;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ecm-feed-copy {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.ecm-feed-copy h4 {
  display: -webkit-box;
  margin: 0;
  overflow: hidden;
  color: #edf6fa;
  font-size: 8.5px;
  font-weight: 620;
  line-height: 1.18;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.ecm-feed-tags {
  display: flex;
  gap: 2px;
  overflow: hidden;
}

.ecm-feed-tags span {
  max-width: 105px;
  overflow: hidden;
  padding: 1px 3px;
  border: 1px solid #254b65;
  border-radius: 1px;
  background: #071c2c;
  color: #69bddc;
  font-size: 6.5px;
  line-height: 1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ecm-feed-action {
  display: flex;
  justify-content: flex-end;
}

.ecm-feed-source,
.ecm-source-unavailable {
  min-height: 20px;
  padding: 2px 3px;
  color: #35d5ff;
  font-size: 7.5px;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}

.ecm-feed-source:hover {
  border-color: #2c5b76;
  background: #082238;
}

.ecm-intelligence-tab {
  display: grid;
  grid-template-rows:
    66px minmax(0, 1fr);
  gap: 8px;
  height: 100%;
  min-height: 0;
  padding: 8px;
  overflow: hidden;
  background: #061522;
}

.ecm-metric-strip {
  display: grid;
  grid-template-columns:
    .8fr .8fr .8fr 1.5fr;
  min-width: 0;
  overflow: hidden;
  border: 1px solid #1d4259;
  background: #071827;
}

.ecm-metric-strip > div {
  display: grid;
  align-content: center;
  gap: 3px;
  min-width: 0;
  padding: 7px 9px;
  border-right: 1px solid #17384e;
}

.ecm-metric-strip > div:last-child {
  border-right: 0;
}

.ecm-metric-strip span {
  color: #7896a7;
  font-size: 7px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.ecm-metric-strip strong {
  min-width: 0;
  overflow: hidden;
  color: #edf7fc;
  font-size: 17px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ecm-metric-strip .is-window strong {
  font-size: 10px;
  line-height: 1.15;
}

.ecm-metric-strip small {
  color: #7f9baa;
  font-size: 7px;
}

.ecm-intelligence-grid {
  display: grid;
  grid-template-columns:
    minmax(0, 1fr)
    minmax(0, 1fr);
  grid-template-rows:
    minmax(0, 1fr)
    minmax(0, 1fr);
  gap: 8px;
  min-height: 0;
}

.ecm-module {
  display: grid;
  grid-template-rows:
    28px minmax(0, 1fr);
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  border: 1px solid #1d4259;
  background: #061827;
}

.ecm-module header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 7px;
  min-width: 0;
  padding: 0 8px;
  border-bottom: 1px solid #17384e;
  background: #061522;
}

.ecm-module header > span {
  min-width: 0;
  overflow: hidden;
  color: #7896a7;
  font-size: 6.5px;
  font-weight: 650;
  letter-spacing: .03em;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.ecm-module header > span strong {
  margin-left: 3px;
  color: #edf7fc;
  font-size: 9px;
}

.ecm-module-body {
  min-height: 0;
  padding: 4px 8px;
  overflow: hidden;
}

.ecm-publisher-row,
.ecm-topic-row {
  display: grid;
  grid-template-columns:
    14px
    minmax(0, 1fr)
    minmax(44px, .72fr)
    22px;
  align-items: center;
  gap: 5px;
  min-height: 25px;
  border-bottom: 1px solid #143247;
}

.ecm-rank {
  color: #6f8b9b;
  font-size: 7px;
  font-variant-numeric: tabular-nums;
}

.ecm-publisher-row > strong,
.ecm-topic-row > strong {
  min-width: 0;
  overflow: hidden;
  color: #d9e7ed;
  font-size: 7.5px;
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ecm-publisher-row > i,
.ecm-topic-row > i {
  position: relative;
  display: block;
  height: 5px;
  overflow: hidden;
  background: #07131e;
}

.ecm-publisher-row > i > b,
.ecm-topic-row > i > b {
  position: absolute;
  inset: 0 auto 0 0;
}

.ecm-publisher-row > i > b {
  width: var(--ecm-publisher-width);
  background: #8d6de3;
}

.ecm-topic-row > i > b {
  width: var(--ecm-topic-width);
  background:
    linear-gradient(
      90deg,
      #8d6de3,
      #aa83f4
    );
}

.ecm-publisher-row > em,
.ecm-topic-row > em {
  color: #d8caff;
  font-size: 7.5px;
  font-style: normal;
  font-variant-numeric: tabular-nums;
  text-align: right;
}

.ecm-shift-module {
  grid-template-rows:
    28px 23px minmax(0, 1fr);
}

.ecm-shift-legend {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0 8px;
  border-bottom: 1px solid #143247;
}

.ecm-shift-legend > span {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  color: #819bab;
  font-size: 6.5px;
  font-weight: 700;
}

.ecm-shift-legend i {
  width: 15px;
  height: 4px;
}

.ecm-shift-legend .is-current i {
  background: #35d5ff;
}

.ecm-shift-legend .is-prior i {
  background: #8d6de3;
}

.ecm-shift-legend small {
  color: #6f8c9d;
  font-size: 6px;
  font-weight: 500;
}

.ecm-shift-list {
  min-height: 0;
  padding: 2px 8px 4px;
}

.ecm-shift-row {
  display: grid;
  grid-template-columns:
    minmax(75px, 1fr)
    30px
    minmax(52px, .8fr)
    29px
    48px;
  align-items: center;
  gap: 4px;
  min-height: 23px;
  border-bottom: 1px solid #143247;
}

.ecm-shift-row > span {
  min-width: 0;
  overflow: hidden;
  color: #dceaf0;
  font-size: 7px;
  font-weight: 650;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ecm-shift-row > strong,
.ecm-shift-row > em,
.ecm-shift-delta {
  font-size: 6.8px;
  font-style: normal;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.ecm-shift-row > strong {
  color: #edf7fc;
  text-align: right;
}

.ecm-shift-row > em {
  color: #b9a5ef;
  text-align: right;
}

.ecm-shift-row > i {
  display: flex;
  align-items: center;
  height: 8px;
  overflow: hidden;
  background: #07131e;
}

.ecm-shift-row > i > b {
  display: block;
  height: 8px;
}

.ecm-shift-row > i > .is-current {
  width: var(--ecm-current-width);
  background: #35d5ff;
}

.ecm-shift-row > i > .is-prior {
  width: var(--ecm-prior-width);
  background: #8d6de3;
}

.ecm-shift-delta {
  overflow: hidden;
  font-weight: 700;
  text-align: right;
}

.ecm-shift-delta.is-up {
  color: #35d5ff;
}

.ecm-shift-delta.is-down {
  color: #aa88f1;
}

.ecm-shift-delta.is-flat {
  color: #91a8b5;
}

.ecm-shift-delta.is-limited {
  opacity: .76;
}

.ecm-volume-module {
  grid-template-rows:
    28px minmax(0, 1fr);
}

.ecm-volume-chart {
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  gap: 5px;
  height: 100%;
  min-height: 0;
  padding: 13px 10px 8px;
  border-bottom: 0;
  background:
    repeating-linear-gradient(
      to top,
      transparent 0,
      transparent calc(33.333% - 1px),
      rgba(31, 70, 94, .46)
        calc(33.333% - 1px),
      rgba(31, 70, 94, .46)
        33.333%
    );
}

.ecm-volume-day {
  display: grid;
  grid-template-rows:
    minmax(0, 1fr) auto auto;
  align-items: end;
  justify-items: center;
  gap: 2px;
  width: 100%;
  min-width: 0;
}

.ecm-volume-day > span {
  position: relative;
  display: block;
  width: 16px;
  height: 100%;
  min-height: 70px;
}

.ecm-volume-day > span > i {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: var(--ecm-volume-height);
  min-height: 2px;
  background:
    linear-gradient(
      180deg,
      #b38aff,
      #7c5bda
    );
}

.ecm-volume-day > b {
  color: #8aa4b2;
  font-size: 6px;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
}

.ecm-volume-day > strong {
  color: #dce9ef;
  font-size: 7px;
  font-variant-numeric: tabular-nums;
}

.ecm-snapshot-empty {
  margin: 8px 0;
  color: #819aa9;
  font-size: 8px;
}

.ecm-disclosure {
  display: flex;
  align-items: center;
  gap: 7px;
  min-height: 24px;
  padding: 3px 8px;
  border-top: 1px solid #1d4259;
  background: #05131f;
  color: #7893a2;
  font-size: 6.8px;
  line-height: 1;
}

.ecm-disclosure > span:first-child {
  color: #35cde9;
  font-size: 10px;
}

.ecm-disclosure > span:last-child {
  margin-left: auto;
  text-align: right;
}

@media (max-width: 860px) {
  .ecm-overlay {
    padding: 8px;
  }

  .ecm-dialog {
    width: calc(100vw - 16px);
    height: calc(100dvh - 16px);
  }
}

@media (max-width: 680px) {
  .ecm-header {
    gap: 6px;
  }

  .ecm-updated {
    display: none;
  }

  .ecm-toolbar.has-candidate-filter,
  .ecm-toolbar.without-candidate-filter {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
    min-height: 58px;
  }

  .ecm-coverage-panel {
    grid-template-rows:
      auto 22px minmax(0, 1fr);
  }

  .ecm-intelligence-tab {
    overflow-y: auto;
  }

  .ecm-intelligence-grid {
    grid-template-columns:
      minmax(0, 1fr);
    grid-template-rows:
      repeat(4, minmax(260px, auto));
  }

  .ecm-metric-strip {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }

  .ecm-metric-strip > div:nth-child(2) {
    border-right: 0;
  }

  .ecm-shift-row {
    grid-template-columns:
      minmax(120px, 1fr)
      42px
      minmax(76px, .8fr)
      42px;
  }

  .ecm-shift-delta {
    grid-column: 2 / -1;
    justify-self: end;
  }

  .ecm-publisher-row {
    grid-template-columns:
      20px minmax(0, 1fr) 34px;
  }

  .ecm-topic-row {
    grid-template-columns:
      20px minmax(0, 1fr) 34px;
    min-height: 54px;
  }

  .ecm-publisher-row > i,
  .ecm-topic-row > i {
    grid-column: 2 / -1;
  }

}

@media (prefers-reduced-motion: reduce) {
  .ecm-overlay,
  .ecm-dialog,
  .ecm-feed-row,
  .ecm-feed-source {
    scroll-behavior: auto;
    transition: none;
  }
}

/* FR27 SHARED READABLE TYPOGRAPHY — COVERAGE MODAL — 2026-07 */

@media (min-width: 681px) {
  .ecm-dialog {
    font-family:
      Inter,
      ui-sans-serif,
      system-ui,
      -apple-system,
      BlinkMacSystemFont,
      "Segoe UI",
      sans-serif;
  }

  .ecm-heading h2,
  .ecm-header h2 {
    font-size: 11.5px;
    line-height: 1;
  }

  .ecm-updated {
    font-size: 9px;
  }

  .ecm-tabs button {
    font-size: 10.5px;
    font-weight: 700;
  }

  .ecm-coverage-panel {
    grid-template-rows:
      32px minmax(0, 1fr);
  }

  .ecm-toolbar.without-candidate-filter {
    grid-template-columns:
      minmax(0, 1.6fr)
      minmax(150px, .75fr)
      minmax(150px, .75fr);
  }

  .ecm-toolbar input,
  .ecm-toolbar select {
    min-height: 30px;
    border-color: #294e68;
    font-size: 10px;
  }

  .ecm-toolbar input:hover,
  .ecm-toolbar select:hover {
    border-color: #3b6882;
  }

  .ecm-toolbar input:focus-visible,
  .ecm-toolbar select:focus-visible {
    border-color: #35d5ff;
    outline: 1px solid #35d5ff;
    outline-offset: -1px;
  }

  .ecm-feed {
    grid-template-rows:
      48px minmax(0, 1fr);
  }

  .ecm-feed-header {
    height: 48px;
    min-height: 48px;
    padding: 6px 10px;
    background: #05121d;
  }

  .ecm-feed-heading {
    display: grid;
    gap: 5px;
    min-width: 0;
  }

  .ecm-feed-header h3,
  .ecm-module header h3 {
    font-size: 10.5px;
    line-height: 1;
  }

  .ecm-feed-meta {
    display: flex;
    align-items: center;
    min-width: 0;
    overflow: hidden;
    color: #809baa;
    font-size: 9px;
    line-height: 1;
    white-space: nowrap;
  }

  .ecm-feed-meta span {
    display: inline-flex;
    align-items: center;
    min-width: 0;
  }

  .ecm-feed-meta span + span::before {
    margin: 0 7px;
    color: #31566d;
    content: "·";
  }

  .ecm-feed-results {
    flex: 0 0 auto;
    color: #8ba6b5;
    font-size: 9px;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
  }

  .ecm-feed-list {
    scrollbar-color:
      #315f79 transparent;
    scrollbar-gutter: stable;
    scrollbar-width: thin;
  }

  .ecm-feed-list::-webkit-scrollbar {
    width: 7px;
  }

  .ecm-feed-list::-webkit-scrollbar-track {
    background: transparent;
  }

  .ecm-feed-list::-webkit-scrollbar-thumb {
    border: 2px solid #061522;
    border-radius: 999px;
    background: #315f79;
  }

  .ecm-feed-list::-webkit-scrollbar-button {
    display: none;
    width: 0;
    height: 0;
  }

  .ecm-feed-row {
    box-sizing: border-box;
    grid-template-columns:
      82px
      132px
      minmax(0, 1fr)
      92px;
    column-gap: 12px;
    height: 60px;
    min-height: 60px;
    padding: 6px 10px 6px 12px;
    background: #061522;
  }

  .ecm-feed-row:nth-child(even) {
    background: #071725;
  }

  .ecm-feed-row:hover {
    background: #082033;
  }

  .ecm-feed-row::before {
    width: 2px;
    opacity: .38;
  }

  .ecm-feed-row:hover::before,
  .ecm-feed-row:focus-within::before {
    opacity: .78;
  }

  .ecm-feed-time,
  .ecm-feed-time small {
    font-size: 9px;
    line-height: 1.15;
  }

  .ecm-feed-time {
    color: #8ba5b4;
  }

  .ecm-feed-time small {
    color: #58bca9;
  }

  .ecm-feed-publisher {
    color: #a991e6;
    font-size: 10px;
    font-weight: 690;
    line-height: 1.2;
  }

  .ecm-feed-copy h4 {
    font-size: 13px;
    font-weight: 610;
    line-height: 1.26;
  }

  .ecm-feed-tags span {
    font-size: 8.5px;
  }

  .ecm-feed-action {
    min-width: 0;
  }

  .ecm-feed-source {
    color: #6bb7cf;
    font-size: 10px;
    font-weight: 650;
  }

  .ecm-feed-source:hover,
  .ecm-feed-source:focus-visible {
    color: #35d5ff;
  }

  .ecm-source-unavailable {
    color: #728b99;
    font-size: 10px;
    font-weight: 600;
  }

  .ecm-intelligence-tab {
    grid-template-rows:
      64px minmax(0, 1fr);
    gap: 8px;
    padding: 8px;
  }

  .ecm-metric-strip {
    grid-template-columns:
      .82fr .82fr .82fr 1.55fr;
    border-color: #24506a;
    background: #071827;
  }

  .ecm-metric-strip > div {
    gap: 2px;
    padding: 6px 10px;
  }

  .ecm-metric-strip span,
  .ecm-metric-strip small {
    font-size: 9px;
    line-height: 1.15;
  }

  .ecm-metric-strip strong {
    font-size: 18px;
    line-height: 1;
  }

  .ecm-metric-strip .is-window strong {
    overflow: visible;
    font-size: 11px;
    line-height: 1.12;
    text-overflow: clip;
    white-space: normal;
  }

  .ecm-intelligence-grid {
    grid-template-columns:
      minmax(0, 1fr)
      minmax(0, 1fr);
    grid-template-rows:
      minmax(0, 1fr)
      minmax(0, 1fr);
    gap: 8px;
  }

  .ecm-module {
    grid-template-rows:
      32px minmax(0, 1fr);
    border-color: #24506a;
    background: #061827;
  }

  .ecm-module header {
    box-sizing: border-box;
    min-height: 32px;
    padding: 0 10px;
    background: #061522;
  }

  .ecm-module header h3 {
    font-size: 10.5px;
    letter-spacing: .07em;
  }

  .ecm-module header > span {
    overflow: visible;
    color: #8ca7b7;
    font-size: 9px;
    font-weight: 650;
    line-height: 1.1;
    text-overflow: clip;
    text-transform: none;
    white-space: nowrap;
  }

  .ecm-module header > span strong {
    color: #edf7fc;
    font-size: 10.5px;
  }

  .ecm-comparison-label {
    cursor: help;
  }

  .ecm-module-body {
    padding: 0 12px 4px 8px;
  }

  .ecm-module-scroll,
  .ecm-shift-list {
    box-sizing: border-box;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-color:
      #35627b transparent;
    scrollbar-gutter: stable;
    scrollbar-width: thin;
  }

  .ecm-module-scroll::-webkit-scrollbar,
  .ecm-shift-list::-webkit-scrollbar {
    width: 6px;
  }

  .ecm-module-scroll::-webkit-scrollbar-track,
  .ecm-shift-list::-webkit-scrollbar-track {
    background: transparent;
  }

  .ecm-module-scroll::-webkit-scrollbar-thumb,
  .ecm-shift-list::-webkit-scrollbar-thumb {
    border: 2px solid #061522;
    border-radius: 999px;
    background: #35627b;
  }

  .ecm-module-scroll::-webkit-scrollbar-button,
  .ecm-shift-list::-webkit-scrollbar-button {
    display: none;
    width: 0;
    height: 0;
  }

  .ecm-module-scroll:focus-visible,
  .ecm-shift-list:focus-visible {
    outline: 1px solid #35d5ff;
    outline-offset: -2px;
  }

  .ecm-topic-row {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    grid-template-columns:
      18px
      minmax(160px, 1.25fr)
      minmax(68px, .62fr)
      32px;
    gap: 6px;
    min-height: 40px;
    padding: 0 1px;
  }

  .ecm-publisher-row {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    grid-template-columns:
      18px
      minmax(132px, 1.12fr)
      minmax(74px, .7fr)
      32px;
    gap: 6px;
    min-height: 36px;
    padding: 0 1px;
  }

  .ecm-rank {
    font-size: 9px;
  }

  .ecm-publisher-row > strong,
  .ecm-topic-row > strong {
    min-width: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: #d9e7ed;
    font-size: 12.5px;
    font-weight: 690;
    line-height: 1.18;
    text-align: left;
  }

  .ecm-publisher-row > strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .ecm-topic-row > strong {
    display: -webkit-box;
    overflow: hidden;
    text-overflow: clip;
    white-space: normal;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .ecm-publisher-row > i,
  .ecm-topic-row > i {
    height: 6px;
    border: 1px solid #18394d;
  }

  .ecm-publisher-row > em,
  .ecm-topic-row > em {
    min-width: 30px;
    justify-self: end;
    padding-right: 2px;
    color: #d8caff;
    font-size: 10.5px;
    font-weight: 700;
    line-height: 1;
    text-align: right;
  }

  .ecm-shift-module {
    grid-template-rows:
      32px 26px minmax(0, 1fr);
  }

  .ecm-shift-legend {
    gap: 12px;
    padding: 0 10px;
  }

  .ecm-shift-legend > span,
  .ecm-shift-legend small {
    font-size: 9px;
    line-height: 1;
  }

  .ecm-shift-legend i {
    width: 18px;
    height: 6px;
  }

  .ecm-shift-list {
    padding: 0 10px 4px;
  }

  .ecm-shift-row {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    grid-template-columns:
      minmax(136px, 1.12fr)
      40px
      minmax(48px, .48fr)
      40px
      92px;
    gap: 4px;
    min-height: 34px;
  }

  .ecm-shift-row > span {
    overflow: hidden;
    font-size: 11.5px;
    font-weight: 700;
    line-height: 1.15;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .ecm-shift-row > strong,
  .ecm-shift-row > em,
  .ecm-shift-delta {
    overflow: visible;
    font-size: 10.5px;
    line-height: 1;
  }

  .ecm-shift-row > i,
  .ecm-shift-row > i > b {
    height: 9px;
  }

  .ecm-shift-delta {
    min-width: 92px;
    justify-self: end;
    padding-right: 2px;
    text-align: right;
  }

  .ecm-volume-module {
    grid-template-rows:
      32px minmax(0, 1fr);
  }

  .ecm-volume-module .ecm-module-body {
    padding: 0;
    overflow: hidden;
  }

  .ecm-volume-chart {
    gap: 8px;
    padding: 10px 10px 8px;
  }

  .ecm-volume-day > span {
    width: 20px;
    min-height: 64px;
  }

  .ecm-volume-day > b {
    font-size: 9.5px;
    font-weight: 700;
    line-height: 1;
  }

  .ecm-volume-day > strong {
    font-size: 10.5px;
    line-height: 1;
  }

  .ecm-snapshot-empty,
  .ecm-disclosure {
    font-size: 9px;
    line-height: 1.2;
  }
}

@media (max-width: 680px) {
  .ecm-coverage-panel {
    grid-template-rows:
      auto minmax(0, 1fr);
  }

  .ecm-feed {
    grid-template-rows:
      auto minmax(0, 1fr);
  }

  .ecm-feed-header {
    align-items: flex-start;
    flex-direction: column;
    gap: 6px;
    height: auto;
    min-height: 64px;
    padding: 8px 10px;
  }

  .ecm-feed-meta {
    flex-wrap: wrap;
    gap: 4px 0;
    white-space: normal;
  }

  .ecm-feed-results {
    align-self: flex-end;
  }

  .ecm-feed-list {
    overflow: visible;
    scrollbar-gutter: auto;
  }

  .ecm-feed-row {
    grid-template-columns:
      76px minmax(0, 1fr);
    align-items: start;
    gap: 8px;
    height: auto;
    min-height: 0;
    padding: 11px 10px 11px 12px;
  }

  .ecm-feed-time {
    grid-row: 1 / 4;
  }

  .ecm-feed-publisher,
  .ecm-feed-copy,
  .ecm-feed-action {
    grid-column: 2;
  }

  .ecm-feed-action {
    justify-content: flex-start;
  }

  .ecm-feed-copy h4 {
    font-size: 13px;
  }

  .ecm-intelligence-tab {
    overflow-y: auto;
  }

  .ecm-intelligence-grid {
    grid-template-columns:
      minmax(0, 1fr);
    grid-template-rows:
      repeat(4, minmax(250px, auto));
  }

  .ecm-metric-strip {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }

  .ecm-metric-strip > div:nth-child(2) {
    border-right: 0;
  }

  .ecm-shift-row {
    grid-template-columns:
      minmax(100px, 1fr)
      38px
      minmax(76px, .8fr)
      38px;
  }

  .ecm-shift-delta {
    grid-column: 2 / -1;
    justify-self: end;
  }

  .ecm-publisher-row,
  .ecm-topic-row {
    grid-template-columns:
      20px minmax(0, 1fr) 34px;
  }

  .ecm-publisher-row > i,
  .ecm-topic-row > i {
    grid-column: 2 / -1;
  }
}
