body {
  font-family: sans-serif;
  margin: 0;
}

.Header {
  margin: 20px 8px;
}

.Header .Title,
.Header .Subtitle {
  margin: 0;
}

.Header .Subtitle {
  color: #666;
}

.StickyHeader {
  align-items: center;
  background-color: #333;
  color: #fff;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  padding: 10px;
  position: sticky;
  top: 0;
}

.Progress {
  appearance: none;
  position: relative;
}

.Progress::-webkit-progress-bar,
.Progress::-webkit-progress-value {
  border-radius: 4px;
}

.Progress::-webkit-progress-value {
  background-color: rgb(135, 255, 135);
}

.Progress.OverCapacity::-webkit-progress-value {
  background-color: rgb(255, 135, 135);
}

.Progress::after {
  color: rgb(135, 255, 135);
  content: '\02714';
  position: absolute;
  right: -24px;
  top: -4px;
}

.Progress.OverCapacity::after {
  color: rgb(255, 135, 135);
  content: '\02716';
}

.Buttons {
  display: flex;
  flex-direction: row;
}

.Button {
  background-color: rgb(0, 102, 255);
  border: 0;
  border-radius: 4px;
  color: #fff;
  font-weight: 700;
  padding: 8px;
  text-transform: uppercase;
}

.Button:not([disabled]) {
  cursor: pointer;
}

.Button[disabled] {
  background-color: #666;
}

.Button:not(:last-child) {
  margin-right: 8px;
}

.AlertHeader {
  align-items: center;
  background-color: rgb(255, 195, 195);
  display: flex;
  padding: 16px;
}

.AlertHeader.isHidden {
  display: none;
}

#Main {
  display: grid;
  grid-gap: 10px;
  padding: 10px;
  grid-template-columns: repeat(auto-fill, minmax(400px, 1fr));
}

.Card {
  border-radius: 8px;
  box-shadow:
    0 1px 3px rgba(0, 0, 0, 0.12),
    0 1px 2px rgba(0, 0, 0, 0.24);
  cursor: pointer;
  padding: 10px;
}

.Card.IsSelected {
  background-color: rgb(195, 255, 195);
}

.Card .Alert {
  background-color: rgb(255, 247, 199);
  font-weight: 700;
  margin: -10px;
  margin-top: 10px;
  padding: 10px;
}

.Card .Title {
  font-size: 120%;
  margin: 0;
  margin-bottom: 6px;
}

.Card .Bytes {
  font-weight: 700;
  margin-top: 1em;
}

.Card .Parameters {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-block: 16px 8px;
}

.Card .Parameters .Parameter {
  align-items: center;
  display: flex;
  justify-content: space-between;
}

.Card .Parameters .Parameter .Label {
  cursor: pointer;
  font-size: 90%;
}

.Card .Parameters .Parameter .Input {
  border: 1px solid #999;
  font-size: 120%;
  text-transform: uppercase;
  width: 100px;
}

.Card .Parameters .Parameter .Input:invalid {
  background-color: rgb(255, 195, 195);
}

.Card .Parameters .Parameter .Input:valid {
  background-color: rgb(195, 255, 195);
  font-weight: 700;
}

