:root {
  font-family: system-ui,
               sans-serif;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  --blue-color: #2591C7;
  --dark-blue: #0C618D;
  --black: #444444;
  --common-gray: #656B74;
  --common-dark-gray: #3F4652;
  --white: #FFFFFF;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0; font: 16px system-ui,sans-serif; color: var(--black); background: var(--white);
}

header {
  display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem 2rem; background: var(--blue-color);
}

header a {
  font-weight: 650; text-decoration: none; color: var(--white); text-shadow: 2px 2px var(--common-gray);
}

a {
  font-weight: bold; text-decoration: none; color: var(--blue-color);
}

nav {
  display: flex; gap: 2rem;
}

.shell {
  max-width: 1450px; padding: 2rem; margin: auto;
}

h1 {
  color: var(--blue-color);
}

h2 {
  font-size: 1.2rem;
}

footer {
  padding: 1.5rem; font-size: .85rem; color: var(--common-gray);
}

.cards,
.grid {
  display: grid; grid-template-columns: repeat(auto-fit,minmax(240px,1fr)); gap: 1rem;
}

.card,
section {
  padding: 1.25rem; border: 1px solid var(--common-gray); border-radius: 8px; margin-bottom: 1.5rem; background: var(--white);
}

.card {
  text-decoration: none;
}

label {
  display: block; margin-bottom: .4rem; font-size: .85rem; color: var(--blue-color);
}

input,
select,
button {
  max-width: 100%; padding: .55rem; border: 1px solid var(--common-dark-gray); border-radius: 4px; font: inherit; color: var(--black); background: var(--white);
}

button,
.button {
  padding: .55rem 1rem; border-radius: 4px; color: var(--white); background: var(--dark-blue); cursor: pointer;
}

form .grid {
  align-items: end;
}

table {
  width: 100%; font-size: .9rem; border-collapse: collapse;
}

th,
td {
  padding: .65rem; border-bottom: 1px solid var(--common-dark-gray); text-align: left;
}

th {
  color: var(--common-gray);
}

.table-scroll {
  overflow: auto;
}

dl {
  display: grid; grid-template-columns: minmax(110px,180px) 1fr; gap: .5rem;
}

dt {
  color: var(--common-gray);
}

dd {
  margin: 0; overflow-wrap: anywhere;
}

.muted {
  color: var(--common-gray);
}

.notice {
  padding: 1rem; border-left: 4px solid var(--yellow); background: var(--dark-background);
}

.nonstandard {
  background: var(--dark-background);
}

.indent {
  white-space: pre;
}

.price {
  font-feature-settings: "tnum";
}

@media(max-width:650px) {
  header {
    flex-direction: column; align-items: flex-start;
  }

  .shell {
    padding: 1rem;
  }

  nav {
    gap: 1rem;
  }

  dl {
    grid-template-columns: 1fr;
  }

  dd {
    margin-bottom: .7rem;
  }
}
