.eco-shell { padding-block: 32px 48px; color: var(--silex-text); }
.eco-shell h1 { font-size: clamp(1.65rem, 3vw, 2.3rem); margin: 0; }
.eco-shell h2 { font-size: 1.2rem; margin: 0; }
.eco-heading { margin-bottom: 26px; }
.eco-heading p, .eco-description { color: var(--silex-text-soft); margin: 8px 0 0; max-width: 72ch; }
.eco-shell a { text-underline-offset: 4px; }
.eco-shell a:focus-visible, .eco-shell summary:focus-visible { outline: 2px solid var(--silex-accent); outline-offset: 4px; }
.eco-table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; font-size: .9rem; }
.eco-table caption { text-align: left; color: var(--silex-muted); font-size: .8rem; padding-bottom: 10px; }
.eco-table th { text-align: left; font-weight: 500; color: var(--silex-text-soft); font-size: .8rem; }
.eco-table th, .eco-table td { padding: 18px 14px; border: 0; border-bottom: 1px solid var(--silex-border); vertical-align: middle; }
.eco-table th:first-child, .eco-table td:first-child { padding-left: 0; }
.eco-platforms td:first-child { width: 40%; }
.eco-table th:nth-child(n+3):not(:last-child), .eco-table td:nth-child(n+3):not(:last-child) { text-align: right; }
.eco-table td:last-child { padding-right: 0; }
.eco-identity { display: flex; gap: 14px; align-items: center; text-decoration: none; color: var(--silex-text); min-height: 56px; }
.eco-identity img, .eco-profile-identity img { flex: none; object-fit: contain; border-radius: 50%; }
.eco-identity strong { font-size: 1rem; font-weight: 550; }
.eco-identity small, .eco-table td > small { display: block; margin-top: 5px; color: var(--silex-muted); font-size: .8rem; line-height: 1.45; }
.eco-open { display: inline-flex; align-items: center; min-height: 44px; gap: 7px; white-space: nowrap; font-size: .8rem; }
.eco-missing { color: var(--silex-muted); }
.eco-stale { display: block; color: var(--silex-warning); font-size: .72rem; margin-top: 4px; }
.eco-method { border-top: 1px solid var(--silex-border); margin-top: 40px; padding-top: 18px; max-width: 78ch; font-size: .82rem; color: var(--silex-muted); line-height: 1.65; }
.eco-method p { margin: 0 0 8px; }
.eco-breadcrumb { display: flex; align-items: center; gap: 12px; font-size: .85rem; color: var(--silex-muted); margin-bottom: 20px; flex-wrap: wrap; }
.eco-breadcrumb a { display: inline-flex; align-items: center; min-height: 44px; }
.eco-profile-heading, .eco-profile-identity, .eco-section-title { display: flex; align-items: center; gap: 16px; }
.eco-profile-heading, .eco-section-title { justify-content: space-between; }
.eco-profile-heading .silex-button { flex: none; gap: 10px; }
.eco-category { font-size: .85rem; color: var(--silex-muted); margin: 5px 0 0; }
.eco-description { margin-top: 20px; }
.eco-metrics { display: grid; grid-template-columns: repeat(3, 1fr); border-block: 1px solid var(--silex-border); margin: 28px 0 14px; }
.eco-metrics > div { padding: 22px 20px; }
.eco-metrics > div:first-child { padding-left: 0; }
.eco-metrics > div + div { border-left: 1px solid var(--silex-border); }
.eco-metrics dt, .eco-pool-summary dt { color: var(--silex-text-soft); font-size: .82rem; }
.eco-metrics dd { font-size: clamp(1.25rem, 2.5vw, 1.8rem); margin: 6px 0; font-variant-numeric: tabular-nums; }
.eco-metrics small { font-size: .73rem; color: var(--silex-muted); }
.eco-metrics .eco-stale { color: var(--silex-warning); }
.eco-coverage, .eco-pool-explainer, .eco-empty { color: var(--silex-muted); font-size: .84rem; line-height: 1.65; max-width: 80ch; }
.eco-history, .eco-pools, .eco-related, .eco-sources { margin-top: 40px; }
.eco-section-title { gap: 12px; margin-bottom: 16px; flex-wrap: wrap; }
.eco-section-title > span { font-size: .78rem; color: var(--silex-muted); }
.eco-chart { display: block; width: 100%; height: auto; max-height: 250px; }
.eco-chart-mobile { display: none; }
.eco-chart line { stroke: var(--silex-border); stroke-width: 1; }
.eco-chart path { stroke: var(--silex-accent); stroke-width: 2; fill: none; vector-effect: non-scaling-stroke; }
.eco-chart text { fill: var(--silex-muted); font-family: var(--silex-font-body); font-size: 13px; }
.eco-history-data { font-size: .8rem; color: var(--silex-muted); }
.eco-history-data summary { cursor: pointer; padding-block: 14px; }
.eco-history-scroll { max-height: 250px; overflow: auto; }
.eco-data-table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.eco-data-table td, .eco-data-table th { padding: 8px; text-align: left; border-bottom: 1px solid var(--silex-border); }
.eco-pool-summary { display: flex; gap: 48px; margin: 0 0 12px; }
.eco-pool-summary dd { margin: 5px 0 0; font-size: 1.25rem; font-variant-numeric: tabular-nums; }
.eco-pool-table th:nth-child(2), .eco-pool-table td:nth-child(2) { text-align: right; }
.eco-pool-table time { font-size: .78rem; color: var(--silex-muted); white-space: nowrap; }
.eco-pool-table tr[hidden] { display: none; }
.eco-pagination { display: flex; align-items: center; justify-content: flex-end; gap: 14px; margin-top: 16px; font-size: .8rem; color: var(--silex-muted); }
.eco-pair { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; overflow-wrap: anywhere; }
.eco-pair a { display: inline-flex; align-items: center; min-height: 44px; }
.eco-sources, .eco-related { font-size: .85rem; color: var(--silex-text-soft); line-height: 1.65; }
.eco-sources h2, .eco-related h2 { color: var(--silex-text); margin-bottom: 10px; }
.eco-sources ul { padding-left: 20px; }
.eco-sr { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.eco-admin-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; padding: 20px 0; }
.eco-admin-form label { display: grid; gap: 6px; font-size: .85rem; }
.eco-admin-form .eco-admin-wide { grid-column: 1 / -1; }
.eco-admin-mapping { display: flex; flex-wrap: wrap; gap: 20px; border: 0; padding: 0; }
.eco-admin-mapping label { display: flex; align-items: center; }
.eco-admin-mapping code { overflow-wrap: anywhere; }
.eco-admin-status { font-size: .8rem; color: var(--silex-muted); white-space: pre-line; }
.eco-external-icon { width: 12px; height: 12px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.6; }
.silex-app #admin-ecosystem-panel .silex-input, .silex-app #admin-ecosystem-panel .eco-admin-mapping label { min-height: 44px; }
.silex-app #admin-ecosystem-panel button[type="submit"] { background: #126d8c; color: #fff; }
.silex-app #admin-ecosystem-panel button[type="submit"]:hover { background: #0f617d; }
@media (max-width: 920px) {
  .eco-table th, .eco-table td { padding-inline: 9px; }
  .eco-identity { gap: 10px; }
  .eco-platforms td:first-child { width: 33%; }
}
@media (max-width: 760px) {
  .eco-shell { padding-top: 22px; }
  .eco-table, .eco-table tbody, .eco-table tr, .eco-table td { display: block; width: 100%; }
  .eco-table thead { position: absolute; width: 1px; height: 1px; clip: rect(0,0,0,0); overflow: hidden; }
  .eco-table caption { display: block; }
  .eco-table tr { padding: 16px 0; border-bottom: 1px solid var(--silex-border); }
  .eco-table td, .eco-platforms td:first-child { width: 100%; padding: 5px 0; border: 0; text-align: left !important; }
  .eco-table td[data-label] { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
  .eco-table td[data-label]::before { content: attr(data-label); font-size: .8rem; color: var(--silex-text-soft); margin-right: auto; }
  .eco-table td[data-label] .eco-stale { margin-left: 0; }
  .eco-identity { margin-bottom: 8px; }
  .eco-identity small { max-width: 48ch; }
  .eco-profile-heading { align-items: flex-start; flex-direction: column; }
  .eco-profile-heading .silex-button { margin-top: 4px; }
  .eco-metrics { grid-template-columns: 1fr; }
  .eco-metrics > div, .eco-metrics > div:first-child { padding: 16px 0; }
  .eco-metrics > div + div { border-left: 0; border-top: 1px solid var(--silex-border); }
  .eco-metrics dd { font-size: 1.5rem; }
  .eco-history, .eco-pools, .eco-related, .eco-sources { margin-top: 30px; }
  .eco-chart-desktop { display: none; }
  .eco-chart-mobile { display: block; }
  .eco-admin-form { grid-template-columns: 1fr; }
  .eco-pool-summary { gap: 32px; }
}
