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