:root {
  --color-primary: #006385;
}

.bg-lightest-blue {
    background-color: hsl(from var(--color-primary) h s 97);
}

.bg-light-blue {
    background-color: hsl(from var(--color-primary) h s 80);
}

body {
  font-family: system-ui, sans-serif;
  background: #fafafa;
}

header {
    background: #fff;
}

img {
    height: auto;
}

input,
textarea,
select {
  padding: .4em;
  border-radius: 5px;
  border: 1px solid #ccc;
}

a {
  color: var(--color-primary);
  text-decoration: none;
  text-underline-offset: 2px;
}

a:hover {
  color: #70b8ce;
  text-decoration: dotted underline;
}

a:not(:is(:hover, :focus)) {
    text-decoration-color: color-mix(in srgb, currentColor, transparent 75%);
}

button[disabled] {
    opacity: .5;
}

button[disabled]:hover {
    cursor: no-drop;
}

hr {
    border-width: 1px;
    border-style: dashed;
    border-bottom-width: 0;
    margin-inline: auto;
    max-width: 100px;
    border-color: #aaa;
}

ul {
    padding-inline-start: 0;
}

.bg-light-blue {
    background-color: hsl(from var(--color-primary) h s 97);
}

.btn {
  appearance: none;
  border: 0;
  background-color: #ccc;
  background-image: linear-gradient(180deg, #fff9, #fff1);
  box-shadow: 0 1px 3px #0003;
  border-radius: 5px;
  display: inline-block;
  padding: .5em .8em;
  line-height: 1;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--color-primary, #006385);
  text-shadow: 1px 1px 1px #fff9;
  transition: background .2s ease;
  cursor: pointer;
}

.btn:hover,
.btn:focus {
  background-color: #ddd;
}

.btn:active {
  box-shadow: 0 1px 1px #0002;
}

.btn-primary {
  background-color: var(--color-primary);
  background-image: linear-gradient(180deg, #fff2, #fff0);
  color: #fff;
  text-shadow: none;
}

.btn-primary:hover,
.btn-primary:focus {
  background-color: hsl(from var(--color-primary) h s 40);
}

.blue { color: var(--color-primary) }
.bg-blue { background-color: var(--color-primary) }
.b--blue { border-color: var(--color-primary) }
.bg-gradient {
  background-image: linear-gradient(180deg, #ddd, #fff, #ddd);
}

button:where(.reset) {
    appearance: none;
    background-color: transparent;
    border: none;
    padding: 0;
}

.ga1 { gap: .25rem }
.ga2 { gap: .5rem  }
.ga3 { gap: 1rem   }
.ga4 { gap: 2rem   }
.ga5 { gap: 4rem   }
.ga6 { gap: 8rem   }
.ga7 { gap: 16rem  }

.gv1 { row-gap: .25rem}
.gv2 { row-gap: .5rem }
.gv3 { row-gap: 1rem  }
.gv4 { row-gap: 2rem  }
.gv5 { row-gap: 4rem  }
.gv6 { row-gap: 8rem  }
.gv7 { row-gap: 16rem }

.gh1 { column-gap: .25rem}
.gh2 { column-gap: .5rem }
.gh3 { column-gap: 1rem  }
.gh4 { column-gap: 2rem  }
.gh5 { column-gap: 4rem  }
.gh6 { column-gap: 8rem  }
.gh7 { column-gap: 16rem }

#tabs:not(:has(.compatible)) {
    position: relative;
}

#tabs:not(:has(.compatible))::after {
    content: 'No compatible modules found';
    text-align: center;
    width: 100%;
    position: absolute;
}

.mod-num {
  text-transform: uppercase;
  font-size: .8em;
  letter-spacing: .1em;
  font-weight: 600;
}

.mod-type {
  display: block;
}

.mod-ada-tag {
  display: inline-block;
  font-size: .55em;
  font-weight: 700;
  letter-spacing: .05em;
  padding: 1px 5px;
  border-radius: 3px;
  background: #2a7a2a;
  color: #fff;
  margin-top: 3px;
}

.pea { pointer-events: auto }
.pen { pointer-events: none }

ul.ui-tabs-nav li {
    position: relative;
}

.ada-mode li[data-ada]::after {
    position: absolute;
    top: 4px;
    right: 4px;
    font-size: .6em;
    font-weight: 700;
    letter-spacing: .03em;
    line-height: 1.4;
    padding: 1px 4px;
    border-radius: 3px;
    pointer-events: none;
}

.ada-mode li[data-ada="compliant"]::after {
    content: 'ADA';
    background: #2a7a2a;
    color: #fff;
}

.mod-tooltip {
    position: fixed;
    z-index: 1000;
    max-width: 260px;
    padding: .4em .6em;
    background: #fff;
    color: #222;
    border: 1px solid #bbb;
    border-radius: 4px;
    box-shadow: 0 2px 6px #0002;
    font-size: .85em;
    line-height: 1.4;
    pointer-events: none;
}

#slope-info:empty {
  display: none;
}

.intro-list {
  list-style-position: inside;
  text-align: center;
}

#guidance-message {
  position: fixed;
  top: 5px;
  left: 50%;
  width: 100%;
  max-width: 500px;
  transform: translateX(-50%);
  z-index: 100;
}
