.fh-table-wrap { overflow-x: auto; margin: 1.5em 0 0.5em; }
.fh-spec-table { width: 100%; border-collapse: collapse; }
.fh-spec-table th, .fh-spec-table td { text-align: left; vertical-align: top; }
.fh-u-sp { margin-left: 0.25em; }
.fh-card-specs { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); margin: 0; }
.fh-card-specs dd { margin: 0; }
.fh-card-actions { display: flex; flex-wrap: wrap; align-items: center; }
.fh-button { display: inline-block; text-decoration: none; }
.fh-rc-form select, .fh-rc-form input { max-width: 100%; }
.fh-rc-form label { display: block; }
.fh-rc-checks { list-style: none; padding: 0; margin: 0; }
.fh-step { border: 0; padding: 0; margin: 0; min-width: 0; }
.fh-chips { display: flex; flex-wrap: wrap; }
.fh-chip-opt { position: relative; display: inline-flex; cursor: pointer; }
.fh-chip-opt input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.fh-range-pair { display: flex; align-items: center; gap: 1em; }
.fh-range-pair input[type="range"] { flex: 1; }
.fh-ss-track { position: relative; display: flex; }
.fh-ss-zone { flex: 1; }
.fh-ss-marker { position: absolute; top: 0; bottom: 0; transform: translateX(-50%); }
.fh-error { color: #b42318; font-weight: 600; }
.fh-ref { font-size: 0.7em; margin-left: 0.15em; }
.fh-ref a { text-decoration: none; }
@media (max-width: 640px) {
  .fh-spec-table.fh-rows thead { display: none; }
  .fh-spec-table.fh-rows tr, .fh-spec-table.fh-rows th, .fh-spec-table.fh-rows td { display: block; }
  .fh-spec-table.fh-rows td::before { content: attr(data-label) ": "; }
}
