/*
 * Copyright © 2025–2026 Dankest, LLC
 * SPDX-License-Identifier: AGPL-3.0-or-later
 * Light theme for the bootstraps browse page - matches the xchain.io palette.
 * The white nav/footer come from /styles.css; this styles the filter card,
 * dropdowns, and the sortable/paged table.
 */
:root {
  --bs-ink: #0f1722; --bs-body: #3b4654; --bs-muted: #6b7280;
  --bs-border: #e6e9ef; --bs-soft: #f6f8fb; --bs-accent: #1e90c7;
  --bs-mono: 'SF Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
.bs { max-width: 1080px; margin: 0 auto; padding: 1.75rem 24px 4rem; }
.bs__head { margin-bottom: 1.25rem; }
.bs__head .breadcrumb { font-size: .85rem; color: var(--bs-muted); margin: 0 0 .6rem; }
.bs__head .breadcrumb a { color: var(--bs-accent); text-decoration: none; }
.bs__head .breadcrumb a:hover { text-decoration: underline; }
.bs__head h1 { font-size: 2rem; letter-spacing: -.02em; color: var(--bs-ink); margin: 0 0 .5rem; }
.bs__tag { color: var(--bs-body); max-width: 70ch; line-height: 1.6; margin: 0; }
.bs code { font-family: var(--bs-mono); font-size: .85em; background: var(--bs-soft); border: 1px solid var(--bs-border); padding: .1em .4em; border-radius: 4px; color: #b5295a; }

/* filter card */
.table-filter { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 10px 12px; font-size: 12px; margin-top: 4px; background: var(--bs-soft); border: 1px solid var(--bs-border); border-radius: 8px; }
.table-filter-text { flex: 1 1 240px; min-width: 200px; max-width: 360px; background: #fff; color: var(--bs-ink); border: 1px solid var(--bs-border); border-radius: 6px; padding: 7px 10px; font: inherit; font-size: 12px; }
.table-filter-text:focus { outline: none; border-color: var(--bs-accent); box-shadow: 0 0 0 3px rgba(30,144,199,.12); }
.table-filter-reset { margin-left: auto; }

/* custom dropdowns */
.dd { position: relative; }
.dd-toggle { display: inline-flex; align-items: center; gap: 8px; min-width: 155px; background: #fff; color: var(--bs-ink); border: 1px solid var(--bs-border); border-radius: 6px; padding: 7px 10px; font: inherit; font-size: 12px; cursor: pointer; }
.dd-toggle:hover { border-color: var(--bs-accent); }
.dd-cur { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; }
.dd-caret { margin-left: auto; color: var(--bs-muted); font-size: 10px; }
.dd-menu { display: none; position: absolute; z-index: 50; top: calc(100% + 4px); left: 0; min-width: 100%; max-height: 320px; overflow: auto; background: #fff; border: 1px solid var(--bs-border); border-radius: 8px; box-shadow: 0 8px 28px rgba(15,23,34,.12); padding: 4px; }
.dd.open .dd-menu { display: block; }
.dd-opt { display: flex; align-items: center; gap: 8px; width: 100%; text-align: left; white-space: nowrap; background: transparent; color: var(--bs-ink); border: 0; border-radius: 5px; padding: 7px 10px; font: inherit; font-size: 12px; cursor: pointer; }
.dd-opt:hover { background: var(--bs-soft); }
.dd-logo { width: 18px; height: 18px; border-radius: 50%; flex: none; }
.dd-emoji { font-size: 15px; line-height: 1; flex: none; }

/* buttons */
.bs button { background: #fff; color: var(--bs-ink); border: 1px solid var(--bs-border); padding: 5px 11px; border-radius: 6px; cursor: pointer; font: inherit; font-size: 12px; font-weight: 500; line-height: 1.4; display: inline-flex; align-items: center; gap: 6px; }
.bs button:hover { background: var(--bs-soft); }
.bs button:disabled { opacity: .45; cursor: not-allowed; }
.bs button.ghost { border-color: transparent; color: var(--bs-muted); font-weight: normal; background: transparent; }
.bs button.ghost:hover { color: var(--bs-ink); background: var(--bs-soft); }

/* table card + pagination */
.table-card { margin-top: 12px; background: #fff; border: 1px solid var(--bs-border); border-radius: 10px; overflow: hidden; }
.table-pagination { display: flex; justify-content: space-between; align-items: center; padding: 8px 10px; font-size: 12px; color: var(--bs-muted); border-bottom: 1px solid var(--bs-border); flex-wrap: wrap; gap: 8px; background: var(--bs-soft); }
.table-pagination select { background: #fff; color: var(--bs-ink); border: 1px solid var(--bs-border); border-radius: 4px; padding: 3px 4px; font-size: 12px; cursor: pointer; }
.table-pagination button { padding: 3px 9px; }

.bs table { width: 100%; border-collapse: separate; border-spacing: 0; }
.bs th, .bs td { padding: 9px 12px; text-align: left; border-bottom: 1px solid var(--bs-border); font-size: 13px; white-space: nowrap; }
.bs th { color: var(--bs-muted); font-weight: 600; font-size: 11px; text-transform: uppercase; letter-spacing: .5px; background: #fbfcfe; }
.bs tbody tr:last-child td { border-bottom: none; }
.bs tbody tr:hover td { background: #f9fbfd; }
.bs th.sortable { cursor: pointer; user-select: none; }
.bs th.sortable:hover { color: var(--bs-ink); }
.bs th.sortable .sort-caret { display: none; margin-left: 4px; font-size: 14px; line-height: 1; vertical-align: middle; position: relative; top: -1px; }
.bs th.sortable.sorted { color: var(--bs-accent); }
.bs th.sortable.sorted .sort-caret { display: inline-block; }
.bs th.num, .bs td.num { text-align: right; font-variant-numeric: tabular-nums; font-family: var(--bs-mono); }
.bs th.actions, .bs td.actions { text-align: center; width: 1%; white-space: nowrap; }
.bs td.muted { color: var(--bs-muted); }
.bs td.coin { white-space: nowrap; }
.bs td.table-empty { padding: 40px 24px; text-align: center; color: var(--bs-muted); }
/* display:inline-block overrides the site's global `img{display:block}` so the icon + coin name stay on one line */
.cimg { display: inline-block; width: 18px; height: 18px; border-radius: 50%; vertical-align: -4px; margin-right: 8px; }
.dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; margin-right: 8px; vertical-align: middle; flex: none; }
.cell-emoji { margin-right: 7px; }

.dlgroup { display: inline-flex; align-items: center; gap: 6px; }
a.dl { display: inline-flex; align-items: center; justify-content: center; gap: 4px; background: transparent; color: var(--bs-accent); border: 1px solid var(--bs-accent); padding: 3px 9px; border-radius: 6px; font-size: 11px; font-weight: 600; line-height: 1.4; text-decoration: none; }
a.dl:hover { background: var(--bs-accent); color: #fff; text-decoration: none; }
a.dl .icon { width: 12px; height: 12px; }
/* Detached-signature link beside Download: muted, monospace, verify-by-hand affordance. */
a.sig { color: var(--bs-muted); font-family: var(--bs-mono); font-size: 11px; text-decoration: none; cursor: help; }
a.sig:hover { color: var(--bs-accent); text-decoration: underline; }
/* Unsigned archives carry no detached .sig, so no client will restore them;
   render a muted amber warning pill in place of the download link. */
.unsigned { display: inline-flex; align-items: center; justify-content: center; background: transparent; color: #b5811d; border: 1px solid #d29922; padding: 3px 9px; border-radius: 6px; font-size: 11px; font-weight: 600; line-height: 1.4; cursor: help; }

.bs .note { color: var(--bs-muted); font-size: 13px; margin-top: 1.4rem; text-align: center; }
.bs .note strong { color: var(--bs-ink); }

@media (max-width: 760px) {
  .table-filter { gap: 8px; }
  .dd-toggle { min-width: 0; }
  .bs th:nth-child(5), .bs td:nth-child(5) { display: none; } /* hide "Updated" on narrow screens */
}
