* {
  box-sizing: border-box;
}

html {
  font-family: "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
  color: black;
  font-size: 100%;
}

body {
  margin: 0;
  padding: 0;
}

main {
  display: block;
}

mark {
  padding: 0.1rem 0.4rem;
  border-radius: 0.4rem;
  transition: background 100ms ease;
}

.l-content {
  padding: 2rem 0;
}

@media (max-width: 800px) {
  .l-content {
    padding: 1rem 0;
  }
}
.splash-grid__left {
  grid-column: 2/4;
}

code {
  font-size: 0.8em;
  background-color: #e0e0e0;
  padding: 2px;
}

h1 {
  font-size: 3rem;
  line-height: 2;
  margin: 0 0 0.5rem;
  color: black;
}

.headline {
  font-size: 4rem;
  line-height: 1.5;
}

.headline--light {
  font-weight: normal;
}

h2 {
  margin: 0;
  font-size: 2rem;
  line-height: 1.25;
  margin: 0 0 0.5rem;
}

h3 {
  line-height: 1.25;
  margin: 0;
  font-size: 1.5rem;
  margin: 0 0 0.5rem;
}

.section__heading {
  font-size: 2.5rem;
  line-height: 1.25;
  margin: 0 0 0.5rem;
  color: black;
}

@media (max-width: 700px) {
  h1 {
    font-size: 2rem;
  }

  h2 {
    font-size: 1.5rem;
  }

  h3 {
    font-size: 1.25rem;
  }

  .headline {
    font-size: 3rem;
    line-height: 1.25;
    margin-bottom: 1rem;
  }

  .section__heading {
    font-size: 2rem;
    line-height: 1.25;
    margin: 1rem 0;
  }
}
h5 {
  font-size: 1em;
  margin-top: 0.25em;
  margin-bottom: 0.25em;
}

html, body, #root, .mapcontainer, .map {
  height: 100%;
}

body * {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

#comparison-container {
  display: inline;
}

.mapcontainer {
  width: 100%;
  width: calc(75%);
  overflow: hidden;
}

.map {
  position: absolute !important;
  top: 0;
  bottom: 0;
  width: 100%;
  width: calc(75%);
}

.mapboxgl-compare {
  display: none;
}

.brush-tool {
  cursor: pointer;
}

.inspect-tool {
  cursor: pointer;
}

.geocoder {
  position: absolute;
  z-index: 1;
  top: 10px;
  left: 50px;
}

.mapboxgl-ctrl-geocoder {
  max-width: 24rem;
  min-width: 16rem;
}

.mapbox-gl-draw_ctrl-draw-btn {
  zoom: 1.2;
}

@media (max-width: 1200px) {
  .mapcontainer, .map {
    width: calc(100% - 300px);
  }
}
@media (min-width: 1400px) {
  .mapcontainer, .map {
    width: calc(100% - 350px);
  }
}
.coi2 .mapcontainer {
  width: 100%;
  width: calc(60%);
  overflow: hidden;
}
.coi2 .map {
  position: absolute !important;
  top: 0;
  bottom: 0;
  width: 100%;
  width: calc(60%);
}

a {
  transition: color 100ms, background 100ms;
}

a,
a:visited {
  font-weight: 600;
  text-decoration: none;
  color: #006b9c;
}
a.districtr-name,
a:visited.districtr-name {
  color: #fff !important;
}

a:hover,
a:active {
  color: #004464;
}

.link--no-style {
  font-weight: unset;
  color: unset;
  display: flex;
}
.link--no-style:hover, .link--no-style:active, .link--no-style:visited {
  color: unset;
}

.icon-list {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  margin: 0;
  padding: 0;
  flex-shrink: 0;
  list-style: none;
}

.icon-list__item i {
  color: black;
  z-index: 100;
  font-size: 1.75rem;
}

.icon-list__item__text {
  color: white;
}

.icon-list__item label {
  display: none;
}

/* Customize the label (the container) */
.icon-list__item {
  width: 2.5rem;
  height: 2.5rem;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  padding: 0;
  margin: 0.1rem;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  text-transform: uppercase;
}

/* Hide the browser's default radio button, lay it on top
of the whole element */
.icon-list__item input {
  margin: 0;
  padding: 0;
  position: absolute;
  opacity: 0;
  cursor: pointer;
  height: 100%;
  width: 100%;
  left: 0;
  top: 0;
  bottom: 0;
  right: 0;
  z-index: 1000;
}

/* Create a custom radio button */
.icon-list__item__radio {
  transition: all 160ms cubic-bezier(0.25, 0.8, 0.25, 1);
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  background-color: white;
  border: 1px solid transparent;
}
.icon-list__item__radio.contiguity {
  border-color: #f00;
}

.icon-list__item:hover input ~ .icon-list__item__radio {
  border-radius: 20%;
  background-color: #f0f0f0;
}

.icon-list__item input:active ~ .icon-list__item__radio {
  border-radius: 20%;
  background-color: #e0e0e0;
}

.icon-list__item input:checked ~ .icon-list__item__radio {
  border-radius: 50%;
  background-color: #20a0ff;
}
.color-list .icon-list__item input:checked ~ .icon-list__item__radio {
  box-shadow: 1px 1px 2px #444;
}

i {
  transition: color 160ms ease;
}

.subtle-button {
  outline: none;
  background: none;
  border: none;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0.1rem;
  padding: 0;
  width: 24px;
  height: 24px;
  cursor: pointer;
  transition: transform 100ms ease;
}
.subtle-button:hover, .subtle-button:focus {
  background-color: #f0f0f0;
}
.subtle-button:active {
  background-color: #e0e0e0;
}

.subtle-button i {
  color: #777;
}

.icon-list__item img {
  height: 37px;
  z-index: 999;
}

.slider-value {
  width: 3rem;
  background: none;
  font-size: 1.2rem;
  font-weight: 400;
  border: none;
  outline: none;
  margin: 0 auto;
  display: block;
  cursor: pointer;
}

.slider {
  cursor: pointer;
  width: 10rem;
}

.slider-container {
  display: flex;
}

.toolbar {
  z-index: 10000;
  position: fixed;
  right: 0;
  background: white;
  padding: 0;
  margin: 0;
  min-width: 300px;
  height: 100vh;
  overflow-y: auto;
  box-shadow: 0 4px 16px rgba(12, 12, 13, 0.1);
  width: 28%;
  max-width: 32%;
  display: flex;
  flex-direction: column;
}

.toolbar-animated {
  transition-property: width;
  transition-duration: 1s;
}

.toolbar-section {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
}

.toolbar-section-left {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-content: flex-start;
  padding: 0 0 0 1rem;
}

.toolbar-section-left > p {
  margin-top: 0;
  font-size: 0.8em;
}

.cluster-display {
  border: 1px #e0e0e0;
  border-radius: 5%;
}

.toolbar-inner-large {
  font-weight: bold;
  display: flex;
  padding: 1rem;
  text-align: justify;
}

.toolbar-inner {
  display: flex;
  padding: 0 1rem 1rem 1rem;
  font-size: 0.8rem;
  text-align: left;
}

.dataset-info {
  padding-right: 0;
}

.dataset-info > p {
  margin: 0;
}

.dataset-info > span {
  font-size: 0.55rem;
}

.district-row {
  display: block;
}

fieldset {
  margin: 0.5rem 0;
  padding: 0;
  border: 0;
}

.color-list {
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  margin: 0 auto;
  justify-content: flex-end;
  flex: 1;
}

.color-list__item {
  width: 1.5rem;
  height: 1.5rem;
  margin: 0.1rem;
}

.tool-options {
  background: #f9f9f9;
  box-shadow: 0px -10px 15px -20px rgba(0, 0, 0, 0.3) inset, 0px 10px 15px -20px rgba(0, 0, 0, 0.3) inset;
  max-height: 0px;
  overflow: hidden;
  transition: all 200ms ease;
  opacity: 0;
  padding: 0 0.5rem;
}

.tool-options.active {
  opacity: 1;
  max-height: 100%;
  border-bottom: solid 1px #aaaaaa;
}

.tool-option-container {
  display: flex;
  align-items: center;
  margin: 0;
}

.toolbar-checkbox {
  display: block;
  margin: 0;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  cursor: pointer;
  line-height: 1.5;
  padding: 0;
  align-self: flex-start;
  padding-right: 0.25rem;
}

.toolbar-checkbox:hover {
  background: #f0f0f0;
}

.toolbar-checkbox:active {
  background: #e0e0e0;
}

@media (max-width: 450px) {
  .toolbar {
    top: 0;
    overflow-y: auto;
    width: 100%;
  }
}
.tabs {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  width: 100%;
  justify-items: center;
}

.tabs__tab {
  color: #444;
  padding: 0.5rem 0;
  border-bottom: solid #aaaaaa 1px;
  border-left: none;
  border-right: none;
  width: 100%;
  text-align: center;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  background-color: #f9f9f9;
  transition: all ease 100ms;
}

input:hover ~ .tabs__tab {
  background: #f0f0f0;
}

input:active ~ .tabs__tab {
  background: #e0e0e0;
}

.tabs li {
  position: relative;
  width: 100%;
}

.tabs input {
  margin: 0;
  padding: 0;
  position: absolute;
  opacity: 0;
  cursor: pointer;
  left: 0;
  top: 0;
  bottom: 0;
  right: 0;
  width: 100%;
  height: 100%;
  z-index: 1000;
}

input:checked ~ .tabs__tab {
  border-bottom: solid rgba(255, 255, 255, 0) 1px;
  border-left: solid #aaaaaa 1px;
  border-right: solid #aaaaaa 1px;
  font-weight: 600;
  background: #fff;
  box-shadow: none;
  color: black;
}

li:last-child > input:checked ~ .tabs__tab {
  border-right: none;
}

li:first-child > input:checked ~ .tabs__tab {
  border-left: none;
}

.tab__body.active {
  display: block;
}

.tab__body {
  overflow-y: auto;
  margin: 0;
  padding: 0.5rem 0;
  flex-shrink: 10;
  display: none;
}

.part-number {
  background: #aaa;
  width: 1.5em;
  height: 1.5em;
  margin: 0 0.2rem;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  color: white;
  margin: 0 auto;
  text-shadow: 1px 1px rgba(10, 10, 10, 0.5);
}

.tool-options {
  flex-shrink: 0;
}

.tab__body h3 {
  margin: 0 0 1rem;
}

.tab__body h4 {
  margin: 0.2rem 0;
  font-size: 1.2rem;
}

.data-table {
  border: none;
  width: 100%;
  margin: 0 0 1rem;
  padding: 0 1rem;
  border-spacing: 0.2rem;
  text-align: left;
}
.age-histogram .data-table {
  text-align: center;
  border-spacing: 0;
}
.age-histogram .data-table .data-table__row-heading {
  vertical-align: bottom;
  padding-top: 0;
  padding-bottom: 1rem;
  padding-right: 0.5rem;
}
.age-histogram .data-table tbody tr {
  height: 50px;
}
.age-histogram .data-table tbody td {
  vertical-align: bottom;
  padding: 0;
}
.age-histogram .data-table tbody td:last-child {
  font-size: 80%;
  vertical-align: middle;
  border-bottom: 1px solid #444;
}

.data-table__cell {
  text-align: right;
  background-color: #f9f9f9;
}

.data-table__column-heading,
.data-table__row-heading,
.data-table__cell {
  padding: 0.1rem;
}

.data-table__column-heading {
  text-align: center;
}

.data-table__row-heading {
  text-align: left;
}

.toolbar-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.25rem;
  margin: 0;
  border-bottom: 1px solid #aaaaaa;
}

.ui-label {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: 0.1rem;
  color: #444;
}

.ui-label--row {
  margin-right: 0.5rem;
}

.ui-option {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  margin: 0.5rem 0;
}
.ui-option.undoredo-option {
  padding-top: 8px;
  border-top: 1px solid silver;
}

.ui-option--slim {
  margin: 0.25rem 0;
}

.ui-data {
  letter-spacing: 0.025rem;
  font-weight: normal;
}

.dropdown {
  position: absolute;
  z-index: 100000;
  box-shadow: 0 4px 4px rgba(12, 12, 13, 0.1);
}

.ui-list {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  list-style: none;
  width: 100%;
  padding: 0;
  margin: 0;
}

.ui-list__item {
  background-color: white;
  padding: 0.5rem;
  margin: 0;
  border-bottom: #aaaaaa 1px solid;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
.ui-list__item:hover, .ui-list__item:focus {
  background-color: #f0f0f0;
}
.ui-list__item:active {
  background-color: #e0e0e0;
}

.mapbox-gl-draw_point, .mapboxgl-ctrl-top-right {
  visibility: hidden;
}

.custom-select-wrapper {
  position: relative;
  user-select: none;
  width: 100%;
}

.custom-select {
  position: relative;
  display: flex;
  flex-direction: column;
  border-width: 0 2px 0 2px;
  border-style: solid;
  border-color: #394a6d;
}
.custom-select .part-number {
  margin-top: 8px;
  margin-right: 8px;
  margin-left: 8px;
  float: left;
}
.custom-select .arrow {
  position: relative;
  height: 15px;
  width: 15px;
}
.custom-select .arrow::before, .custom-select .arrow::after {
  content: "";
  position: absolute;
  bottom: 0px;
  width: 0.15rem;
  height: 100%;
}
.custom-select .arrow::before {
  left: -5px;
  transform: rotate(-45deg);
  background-color: #394a6d;
}
.custom-select .arrow::after {
  left: 5px;
  transform: rotate(45deg);
  background-color: #394a6d;
}
.custom-select.open .arrow::before {
  left: -5px;
  transform: rotate(45deg);
}
.custom-select.open .arrow::after {
  left: 5px;
  transform: rotate(-45deg);
}

.custom-select__trigger {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 22px;
  color: #3b3b3b;
  height: 40px;
  line-height: 40px;
  background: #ffffff;
  cursor: pointer;
  border-width: 2px 0 2px 0;
  border-style: solid;
  border-color: #394a6d;
}
.custom-select__trigger .label {
  text-overflow: ellipsis;
  max-width: fit-content;
  white-space: nowrap;
  max-width: 180px;
  overflow: hidden;
}
.custom-select__trigger .part-number {
  margin-top: 0;
}

.custom-options {
  position: absolute;
  display: block;
  top: 100%;
  left: 0;
  right: 0;
  border: 2px solid #394a6d;
  border-top: 0;
  background: #fff;
  transition: all 0.5s;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  z-index: 2;
  overflow-y: scroll;
  max-height: 250px;
}

.custom-select.open .custom-options {
  opacity: 1;
  visibility: visible;
  pointer-events: all;
}

.custom-option {
  position: relative;
  display: block;
  padding: 0 22px 0 22px;
  font-size: 18px;
  font-weight: 300;
  color: #3b3b3b;
  line-height: 39px;
  cursor: pointer;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.custom-option:hover {
  cursor: pointer;
}

.custom-option.selected {
  color: #ffffff;
  background-color: #305c91;
}

.coalition-table td:first-of-type {
  background: rgba(0, 0, 0, 0.1) !important;
  color: #000 !important;
}

.landmark-list button {
  background-color: #0099cd;
  color: #fff;
  cursor: pointer;
}
.landmark-list button img {
  display: inline-block;
  width: 28px;
  vertical-align: middle;
}
.landmark-list .option-list__item {
  margin-bottom: 0.5rem;
}
.landmark-list #landmark-instruction {
  visibility: hidden;
}

.elect_tooltip {
  position: relative;
}

/* Tooltip text */
.elect_tooltip .elect_tooltiptext {
  visibility: hidden;
  width: auto;
  height: auto;
  min-width: 8rem;
  min-height: 2rem;
  background-color: #111;
  color: #eee;
  text-align: center;
  padding: 5px 0;
  border-radius: 6px;
  font-size: 0.9rem;
  /* Position the tooltip text - see examples below! */
  position: absolute;
  z-index: 1;
  transition: opacity 100ms ease-out, height 100ms ease, width 100ms ease;
  pointer-events: none;
}

.elect_tooltip_right_edge {
  margin-left: -100%;
}

/* Show the tooltip text when you mouse over the tooltip container */
.elect_tooltip:hover .elect_tooltiptext {
  visibility: visible;
}

.bar-chart rect {
  fill: #aaa;
}

.report-data-list {
  display: flex;
  flex-direction: column;
  padding: 0 1rem;
  margin: 0.5rem 0;
}

.bar-chart {
  margin: 0 1rem;
  background: #f9f9f9;
  align-self: stretch;
}

.bar-chart text {
  text-shadow: 1px 1px #f9f9f9;
  letter-spacing: 0.025rem;
}

.bar-chart .bar-chart-overlay {
  fill: #eeeeee;
  z-index: 100;
}

.bar-chart .seats-list__item {
  fill: white;
  text-shadow: none;
  font-weight: bold;
}

.pop-balance-chart__header {
  color: #111;
  font-size: 1rem;
  font-weight: bold;
  display: flex;
  width: 300px;
  border-bottom: 1px solid #aaaaaa;
  margin: 0;
}

.pop-balance-chart__header > * {
  padding: 0.2rem;
}

.pop-balance-chart__header > *:first-child {
  background: #eee;
}

.income-table table tr:last-child th {
  text-align: center;
}

.tooltip {
  box-sizing: border-box;
  display: block;
  position: absolute;
  z-index: 10000;
  font-family: "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
  background: #111;
  margin: 0 auto;
  text-align: left;
  font-size: 0.9rem;
  color: #eee;
  width: auto;
  height: auto;
  min-width: 8rem;
  min-height: 2rem;
  transition: opacity 100ms ease-out, height 100ms ease, width 100ms ease;
  pointer-events: none;
}

.tooltip__dots {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: center;
  align-items: center;
}

.tooltip__dot {
  font-size: 0.9rem;
  margin-left: -0.5rem;
  width: 1.25rem;
  height: 1.25rem;
}

.tooltip-data {
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.tooltip--hidden {
  opacity: 0;
  height: 0px;
  width: 0px;
}

dl {
  margin: 0;
  padding: 0;
}

.tooltip-data__row > dt,
.tooltip-data__row > dd {
  margin: 0;
  padding: 0;
  position: relative;
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
  z-index: 10002;
}

.tooltip-data__row {
  min-width: 120px;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: start;
  justify-content: space-between;
}

.tooltip-data__row:first-child {
  margin-top: 0;
}

.tooltip-data__row:last-child {
  margin-bottom: 0;
}

.tooltip-data__row > dt {
  padding: 0.2rem;
  overflow: hidden;
  height: 2rem;
}

.tooltip-data__row__bar {
  background: #666;
  z-index: 10001;
  transition: all 100ms ease;
  position: absolute;
  left: 0;
  height: 1.5rem;
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}

.tooltip-data__row > dd {
  padding: 0.2rem;
  text-align: right;
  min-width: 2rem;
}

.tooltip__text {
  font-size: 0.8rem;
  margin: 0;
  padding: 0.5rem 0.25rem;
  max-width: 250px;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
}

.tooltip__text__small {
  font-size: 0.8rem;
  margin: 0;
  padding: 0.5rem 0.25rem;
  width: auto;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
}

.tooltip__text--column {
  display: block;
  padding: 0.5rem;
  width: auto;
}

.tooltip__title {
  margin: 0;
  padding: 0;
  line-height: 1;
}

.places-list-container {
  margin: 0 auto;
  width: 65%;
  max-width: 72rem;
  padding: 0;
}

.places-list {
  list-style: none;
  font-size: 1rem;
  margin: 0;
  padding: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

.places-list--columns {
  flex-wrap: wrap;
  flex-direction: row;
  justify-content: center;
  align-items: center;
}

.places-list__item {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  margin: 0.5rem 0.5rem;
  padding: 0.5rem;
  font-weight: bold;
  transition: all ease 100ms;
  border-radius: 0.5rem;
  background-color: #b445b6;
  color: white;
  cursor: pointer;
}
.places-list__item:focus {
  box-shadow: 0 1px 4px rgba(10, 10, 10, 0.5);
}
.places-list__item:hover {
  background-color: #9c2eb8;
}
.places-list__item.choice {
  cursor: default;
  background-color: #b445b6;
}
.places-list__item.choice button {
  cursor: pointer;
  background-color: #fff;
  color: #b445b6;
  padding: 0.2rem 0.6rem;
  margin: 0.2rem 0.5rem;
  border-radius: 0.2rem;
  font-size: 100%;
}
.places-list__item.choice button:hover {
  background-color: #eee;
}
.places-list__item.choice:hover {
  background-color: #b445b6;
}

.custom-input {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  margin: 0.5rem 0.5rem;
  padding: 0.5rem;
  font-weight: bold;
  transition: all ease 100ms;
  border-radius: 0.5rem;
  background-color: #b445b6;
  color: white;
  cursor: pointer;
}
.custom-input:focus {
  box-shadow: 0 1px 4px rgba(10, 10, 10, 0.5);
}
.custom-input:hover {
  background-color: #9c2eb8;
}
.custom-input.choice {
  cursor: default;
  background-color: #b445b6;
}
.custom-input.choice button {
  cursor: pointer;
  background-color: #fff;
  color: #b445b6;
  padding: 0.2rem 0.6rem;
  margin: 0.2rem 0.5rem;
  border-radius: 0.2rem;
  font-size: 100%;
}
.custom-input.choice button:hover {
  background-color: #eee;
}
.custom-input.choice:hover {
  background-color: #b445b6;
}

.communities {
  /*
      .learn__more,
      .learn__more:visited {
          background: $mggg-blue;
      }

      .learn__more:hover,
      .learn__more:active {
          background: $mggg-dark-blue;
      }
  */
}
.communities .state--available {
  fill: #ff4f49;
}
.communities .state--available:hover {
  fill: #e44944;
}
.communities .state--available:active {
  fill: #9e2925;
}
.communities .places-list__item {
  background-color: #ff4f49;
}
.communities .places-list__item:hover {
  background-color: #e44944;
}
.communities .place-map__search {
  color: #444;
  border-bottom-color: #444;
  caret-color: #444;
}
.communities .media__title--primary,
.communities .button--transparent {
  color: #444;
}

.card .places-list__item {
  background-color: #006b9c;
}
.card .places-list__item:hover {
  background-color: #004464;
}

.places-list__item--small {
  max-width: 14rem;
  margin: 0.5rem;
}

.place-info {
  margin: 0.25rem 0;
  font-weight: normal;
}

.plan-loader {
  margin: 1rem auto;
  text-align: center;
  color: #444;
}

.places-list-container {
  width: 100%;
}

.places-list__item {
  height: auto;
  width: auto;
}

.start-districting {
  display: grid;
  width: 100%;
  grid-template-areas: "form form form form" "map map map map";
  grid-template-columns: auto 1fr 1fr auto;
  height: 700px;
  height: 110vh;
  min-height: 600px;
  overflow: hidden;
}

.start-districting--alone {
  padding: 1rem 0;
}

.start-districting__title {
  text-align: center;
  margin: 0;
  grid-area: title;
  color: black;
}

.request-new-place {
  display: flex;
  justify-content: center;
  flex-direction: row;
  flex-wrap: wrap;
  margin: 0 auto;
  align-items: center;
  padding: 3rem 0;
}

.call-to-request {
  font-weight: 400;
  font-size: 2rem;
  line-height: 1.5;
  margin: 0 0.5rem;
}

@media (max-width: 800px) {
  .call-to-request {
    font-size: 1.5rem;
  }
}
/*
.learn__more,
.learn__more:visited {
    background: $districtr-red;
    color: white;

    border-radius: 0.5rem;
    // padding: 0.2rem 0.4rem;
    padding: 0.1rem 0.4rem;

    font-weight: 600;
    font-family: $font-family;

    margin-top: 0.5rem;
    outline: 0;
    border: none;

    line-height: 1.5;
    display: block;
    text-align: center;
}

.learn__more:hover,
.learn__more:active {
    cursor: pointer;
    color: white;
    background: $districtr-red-dark;
}

.learn__more:active {
    outline: 0;
}

.learn__more:focus {
    box-shadow: $focus-shadow;
    outline: 0;
}
*/
.button,
.button:visited {
  background: #ff4f49;
  color: white;
  border-radius: 0.25rem;
  padding: 0.1rem 0.4rem;
  font-weight: 400;
  font-family: "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
  margin: 0;
  outline: 0;
  border: none;
}

.button:hover,
.button:active {
  cursor: pointer;
  color: white;
  background: #e44944;
}

.button:active {
  outline: 0;
}

.button:focus {
  box-shadow: 0 1px 4px rgba(10, 10, 10, 0.5);
  outline: 0;
}

.button--alternate {
  border: 2px solid #ffffff;
  background: #0099cd;
  border-radius: 0.25rem;
  color: white;
  font-family: inherit;
  font-size: 1rem;
  line-height: 1.2;
  white-space: nowrap;
  text-decoration: none;
  padding: 0.25rem 0.5rem;
  margin: 0.25rem;
  cursor: pointer;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
.button--alternate:hover {
  background-color: #006b9c;
  border: 2px solid #ff4f49;
}

.button--alternate--clicked {
  background-color: #006b9c;
  border: 2px solid #ff4f49;
  border-radius: 0.25rem;
  color: white;
  font-family: inherit;
  font-size: 1rem;
  line-height: 1.2;
  white-space: nowrap;
  text-decoration: none;
  padding: 0.25rem 0.5rem;
  margin: 0.25rem;
  cursor: pointer;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.button--blank {
  background: #f9f9f9;
  border: 1px solid #666;
}

.button--blank[disabled] i {
  color: #ccc !important;
}

.button--blank:hover,
.button--blank:active {
  background: #aaa;
}

.button--transparent {
  background: none;
  color: #0099cd;
}
.button--transparent:hover {
  background-color: #f0f0f0;
  color: #0099cd;
}
.button--transparent:active {
  background-color: #e0e0e0;
  color: #0099cd;
  box-shadow: none;
}

.button--subtle {
  background: white;
  color: #444;
}
.button--subtle:hover, .button--subtle:focus {
  background-color: #f0f0f0;
}
.button--subtle:active {
  background-color: #e0e0e0;
}
.button--subtle:hover, .button--subtle:active, .button--subtlefocus {
  color: #444;
}

.button--no-shadow:focus {
  box-shadow: none;
}

.button[disabled] {
  background: #f9f9f9;
  color: #444;
  cursor: auto;
}
.button[disabled]:hover {
  background: #f9f9f9;
  color: #444;
}
.button[disabled]:active {
  background: #f9f9f9;
  color: #444;
  box-shadow: none;
}

.button--icon {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0.25rem;
  line-height: 1;
}

.button--submit {
  line-height: 2;
  font-weight: 600;
  text-transform: uppercase;
  font-size: 0.75rem;
  letter-spacing: 0.1rem;
}

.square-button {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  background-color: #f9f9f9;
  color: #444;
  font-weight: normal;
  outline: none;
  border: none;
  border-radius: 0.25rem;
  width: 2.5rem;
  height: 2.5rem;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  padding: 0;
  margin: 0.1rem;
  transition: all ease 100ms;
  cursor: pointer;
}
.square-button:hover, .square-button:focus {
  background-color: #f0f0f0;
}
.square-button:active {
  background-color: #e0e0e0;
}

.header-with-toggle {
  display: flex;
  flex-direction: row;
  justify-content: stretch;
  align-items: center;
  width: 100%;
  padding: 0rem;
  margin: 0 0 0.5rem;
  overflow: hidden;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.header-with-toggle__icon {
  outline: none;
  background: none;
  margin: 0 0.5rem;
  align-self: right;
  padding: 0;
  width: 24px;
  height: 24px;
  border: none;
  cursor: pointer;
  transition: transform 100ms ease;
}

.header-with-toggle__header {
  flex: 1;
}

.header-with-toggle:hover {
  background: #f0f0f0;
}

.header-with-toggle:active {
  background: #e0e0e0;
}

.header-with-toggle__icon.open {
  transform: rotate(90deg);
}

.reveal {
  transition: all 100ms ease-out;
  overflow: hidden;
  width: 100%;
}

.reveal--hidden {
  transition-timing-function: ease-in;
  opacity: 0;
  max-height: 0px;
  min-height: 0;
}

.media {
  background-color: white;
  border-radius: 0.5rem;
  box-shadow: 0 4px 16px rgba(12, 12, 13, 0.1);
  padding: 1rem;
  color: #666;
  border: 1px solid #00446444;
  max-width: 30rem;
}

.media--interactive {
  transition: 100ms all ease;
}
.media--interactive:hover {
  box-shadow: 0 4px 16px rgba(12, 12, 13, 0.2);
}

.media__title {
  font-size: 2rem;
  line-height: 1.25;
  font-weight: normal;
  margin: 0 0 0.5rem;
}

.media--bold {
  color: black;
}

.media__title--primary {
  color: #0099cd;
}

.media__title--bold {
  font-weight: bold;
}

.media__img {
  float: right;
  max-width: 12rem;
  margin: 0.5rem;
  border-radius: 0.5rem;
}

.media__subtitle {
  font-weight: normal;
  font-size: 1.41rem;
  color: #666666;
  margin: 0 0 0.5rem;
}

.media__close {
  height: 32px;
  width: 32px;
  float: right;
}

.media__body {
  overflow: auto;
  max-height: 400px;
}

.media-list {
  margin: 1rem 0;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  width: 100%;
  justify-content: center;
}

.media-list__item {
  margin: 1rem 2rem;
  max-width: 30rem;
}

@media (max-width: 400px) {
  .media__img {
    float: none;
    margin: 1rem auto;
    display: block;
  }

  .media-list__item {
    margin: 1rem 0rem;
  }

  .media-list {
    margin: 0;
    padding: 0;
  }
}
.color-scale__labels {
  display: flex;
  justify-content: space-between;
  margin: 0;
  padding: 0;
  width: 100%;
  font-size: 0.8rem;
  color: #444;
}

.color-scale__label {
  margin: 0;
  padding: 0;
  list-style: none;
}

.color-scale {
  max-width: 300px;
}

.color-scale__bar {
  width: 100%;
  height: 1.5rem;
  border: solid 1px #aaaaaa;
}

.color-scale-continuous {
  background: linear-gradient(to right, rgba(0, 0, 0, 0), black);
}

.yrselect {
  padding-top: 4px;
  padding-bottom: 4px;
}
.yrselect label, .yrselect input {
  cursor: pointer;
  display: inline-block;
}
.yrselect label:first-child {
  cursor: default;
}

.color-legend {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
  margin-top: 10px;
  display: none;
}
.color-legend .labels {
  display: none;
}
.color-legend .labels .square {
  font-size: 10pt;
}
.color-legend .square {
  width: 40px;
  height: 24px;
  display: inline-block;
}
.color-legend .notch {
  width: 40px;
  display: inline-block;
  font-size: 10px;
  height: 10px;
}
.color-legend .gradientbar {
  width: 218px;
  /* 240px; */
  height: 24px;
  background: linear-gradient(to right, rgba(255, 255, 255, 0), rgba(0, 0, 0, 0.81));
  display: inline-block;
  border: 1px solid #ddd;
  border-left: none;
  border-right: none;
}
.color-legend .gradientbar.purple {
  background: linear-gradient(to right, rgba(255, 255, 255, 0), rgba(0, 0, 139, 0.81));
}
.color-legend .gradientbar.greenorange {
  background: linear-gradient(to right, #fab347, 30%, #d8d8d8, 70%, #5ab47a);
}

.cluster-tile__subcluster-checkbox {
  display: flex;
  width: 100%;
}

.cluster-tile__subcluster-checkbox > input {
  width: 1.1rem;
}

.cluster-tile__checkbox-container {
  width: 100%;
}

.cluster-tile {
  width: 90%;
  height: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  flex-wrap: wrap;
  margin-left: 5%;
  border-radius: 0.25rem;
  border: 1px solid black;
  margin-bottom: 1rem;
  margin-top: 1rem;
  padding: 0.25rem;
}

.cluster-tile__subcluster {
  display: flex;
  justify-content: space-between;
  flex-direction: column;
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
  width: 100%;
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}

.cluster-tile__component {
  display: flex;
}

.cluster-tile__pattern {
  height: 1.25rem;
  width: 1.25rem;
  margin-right: 0.25rem;
  border: 1px solid #e0e0e0;
  border-radius: 0.25rem;
  flex-shrink: 0;
}

.cluster-tile__title {
  font-weight: bold;
  border-bottom: 1px solid #e0e0e0;
  width: 90%;
  text-align: center;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}

.cluster-tile__header {
  font-size: 0.95em !important;
  font-weight: normal !important;
  display: flex;
  flex-direction: column;
  width: 100%;
}

.cluster-tile__header > i {
  font-size: 0.7rem;
}

.cluster-tile__label {
  display: flex;
  width: 33%;
}

.cluster-tile__button {
  flex-grow: 1;
}

.cluster-tile__button, .cluster-control__button {
  background-color: white !important;
  color: black !important;
  border: 2px solid black !important;
  font-size: 0.6rem !important;
}
.cluster-tile__button:hover, .cluster-control__button:hover {
  background-color: #f0f0f0 !important;
}

.cluster-tile__button-container {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
}

.cluster-tile__button-toggle-active {
  background-color: black !important;
  color: white !important;
}
.cluster-tile__button-toggle-active:hover {
  background-color: white !important;
  color: black !important;
}

.cluster-tile__subcluster-keywords {
  width: 100%;
  text-align: left;
  font-size: 0.7rem;
}

.cluster-tile__highlight {
  width: 100%;
}
.cluster-tile__highlight:hover {
  color: #eb4034 !important;
  border: 2px solid #eb4034 !important;
}

.cluster-tile__highlight-active {
  color: white !important;
  border: 2px solid #eb4034 !important;
  background-color: #eb4034 !important;
}

.cluster-page__header {
  margin-top: 2rem;
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  width: 80%;
  margin-left: 10%;
  border-bottom: 2px solid #e0e0e0;
}

.cluster-page__description {
  text-align: left;
  width: 70%;
  margin-left: 15%;
  font-size: 1.2rem;
  padding: 0;
  margin-bottom: 2rem;
}

.cluster-control {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 90%;
  margin-left: 5%;
  border-bottom: 1px solid #e0e0e0;
  padding-bottom: 0.25rem;
}

.cluster-control__header {
  display: flex;
  flex-direction: column;
  align-items: center;
  position: sticky;
  top: 0;
  background-color: white;
}

.cluster-control__header > * {
  background-color: white;
}

.cluster-control__checkbox-container {
  border-bottom: 1px solid #e0e0e0;
  padding-bottom: 0.25rem;
}

.cluster-control__checkbox {
  font-weight: bold;
  font-size: 1.2em;
  margin: auto;
}

.cluster-control__component {
  display: flex;
  margin-bottom: 0.25rem;
  padding-top: 0.25rem;
  position: sticky;
  top: 0;
  background-color: white;
  z-index: 10;
}

.tab__body {
  padding-top: 0;
}

.cluster-control__component > * {
  background-color: white;
}

.cluster-control__subcomponent {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-evenly;
}

.cluster-control__slider {
  flex-direction: row;
  align-items: flex-start;
  justify-content: center;
}

#pattern-intensity-slider {
  margin-left: 0.5rem;
}

.cluster-control__button {
  font-size: 1rem !important;
}

.cluster-control__button-next, .cluster-control__button-previous {
  font-size: 0.8rem;
}

.option-list {
  padding: 0 1rem;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  list-style: none;
  margin: 0;
}

.option-list__item {
  display: flex;
  flex-direction: column;
  margin-bottom: 1rem;
}

.parameter {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin-bottom: 0.25rem;
}

.parameter__label {
  font-weight: bold;
  margin-right: 0.5rem;
}

select {
  margin: 0.25rem 0;
  font-family: "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
  font-size: 1rem;
  max-width: 200px;
  line-height: 1.5;
}

.modal-wrapper {
  position: absolute;
  z-index: 100000;
  width: 100vw;
  height: 100vh;
  background: rgba(0, 0, 0, 0.3);
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0.5rem;
}

.modal-content {
  line-height: 1.5;
  z-index: 1000000;
  background-color: white;
  border-radius: 0.5rem;
  box-shadow: 0 4px 16px rgba(12, 12, 13, 0.1);
  padding: 1rem;
  color: #444;
  border: 1px solid #004464;
  max-width: 36rem;
  max-height: 100%;
  overflow: auto;
}
.modal-content code, .modal-content label {
  display: block;
}
.modal-content button {
  cursor: pointer;
  font-size: 10pt;
}
.modal-content button[disabled] {
  cursor: default;
}

.text-input {
  font-size: 1rem;
  font-family: "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
  border: 1px solid #aaaaaa;
  padding: 0.25rem;
  transition: all 100ms ease;
  outline: none;
  background: none;
  margin: 0.5rem 0;
}

.text-area {
  height: 10rem;
  resize: none;
  width: 100%;
  margin: 0.5rem 0;
}

.short-text-area {
  height: 5rem;
}

.vertical-align {
  vertical-align: middle;
}

.dropdown {
  transition-duration: 60ms;
}

#mobile-upload {
  display: none;
}

#desktop-upload {
  display: inline-block;
  border: 1px solid #000;
  padding: 4px;
  border-radius: 4px;
  cursor: pointer;
}
#desktop-upload.unsaved {
  background-color: #fff;
}
#desktop-upload.saved {
  background-color: #efe;
  cursor: default;
}
#desktop-upload.updated {
  background-color: #eef;
}

.modal-wrapper code {
  user-select: all;
  -webkit-user-select: text;
}

.modal-wrapper input, .modal-wrapper button, .custom-select-wrapper {
  -webkit-user-select: all;
}

input, textarea {
  -webkit-user-select: text;
  user-select: all;
  user-select: text;
}

#save-popup {
  display: none;
  visibility: hidden;
  top: 42px;
  left: 10px;
  right: 10px;
  -webkit-transform-origin: right top;
  transform-origin: right top;
  margin: 0.7em 0 0;
  position: absolute;
  z-index: 1900;
  border: 1px solid #ddd;
  background: #fff;
  padding: 1em;
  border-radius: 0.3rem;
  -webkit-box-shadow: 0 2px 4px 0 rgba(34, 36, 38, 0.12), 0 2px 10px 0 rgba(34, 36, 38, 0.15);
  box-shadow: 0 2px 4px 0 rgba(34, 36, 38, 0.12), 0 2px 10px 0 rgba(34, 36, 38, 0.15);
}
#save-popup.show {
  display: block;
  visibility: visible;
}
#save-popup.show strong {
  display: block;
}
#save-popup.show code {
  display: block;
  word-break: break-all;
  user-select: all;
  -webkit-user-select: text;
}
#save-popup.show input, #save-popup.show button {
  user-select: all;
  -webkit-user-select: all;
}
#save-popup.show button {
  cursor: pointer;
}
#save-popup.show button.close-button {
  float: right;
  border: 2px solid #000;
  font-weight: bold;
}
#save-popup:before {
  top: -0.3em;
  left: 70%;
  -webkit-box-shadow: -1px -1px 0 0 #bababc;
  box-shadow: -1px -1px 0 0 #bababc;
  background: #fff;
  position: absolute;
  content: "";
  width: 0.7em;
  height: 0.7em;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  z-index: 2;
  -webkit-box-sizing: inherit;
  box-sizing: inherit;
}

@media (max-width: 900px) {
  #mobile-upload {
    display: block;
  }

  #desktop-upload {
    display: none;
  }
}
.print-only {
  display: none;
}

@media print {
  .mapboxgl-canvas {
    transform: scale(0.65);
    transform-origin: 0 0;
  }

  nav > ul {
    display: none;
  }

  .report-data-list .toolbar-checkbox,
.mapboxgl-control-container, .geocoder {
    display: none;
  }

  web-header {
    display: none;
  }

  .print-only {
    display: block;
  }

  .toolbar {
    position: absolute;
  }

  .print-summary {
    width: 100%;
    z-index: 999;
    top: 102%;
    top: 102vh;
    position: absolute;
    background: #fff;
    clear: both;
    margin-top: 2%;
  }
  .print-summary > div {
    border-bottom: 1px solid silver;
    padding-bottom: 10px;
  }
  .print-summary h4 > .part-number {
    display: inline-block;
    vertical-align: middle;
    width: 1px;
    height: 1px;
    margin-right: 12px;
  }
  .print-summary p {
    white-space: break-spaces;
  }
}
.modal-wrapper {
  top: 0;
}

#extra-event, #extra-event-popup {
  display: none;
}

.section_coi2 {
  padding: 10px;
  border-radius: 10px;
  border: 1px solid silver;
}
.section_coi2 .centered {
  text-align: center;
}

.coi2 .toolbar {
  width: 40% !important;
  max-width: 40% !important;
}

.vra .toolbar {
  width: 30% !important;
  max-width: 500px !important;
}

.contiguity-label label, .contiguity-label input {
  cursor: pointer;
}
.contiguity-label input {
  vertical-align: middle;
  margin-left: 16px;
}

li.party-desc span {
  vertical-align: middle;
}
li.party-desc span:first-child {
  display: inline-block;
  width: 15px;
  height: 15px;
  margin-right: 8px;
}

#coi_browse {
  display: none;
  border: 2px inset #888;
  max-height: 150px;
  overflow-y: scroll;
  padding: 3px;
}
#coi_browse label {
  cursor: pointer;
}
#coi_browse label .coi-squareSpan {
  display: inline-block;
  width: 14px;
  height: 14px;
  margin-right: 8px;
}

iframe {
  /* netlify widget */
  display: none !important;
  visibility: hidden !important;
}

#modal-coi-copy {
  min-width: 500px;
  max-width: 800px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
#modal-coi-copy .number-box {
  border-radius: 10px;
  background: #ccc;
  width: 20px;
  text-align: center;
  margin-right: 3px;
}
#modal-coi-copy h4 small {
  display: block;
  max-width: 160px;
  overflow: hidden;
}
#modal-coi-copy > div {
  display: flex;
  cursor: pointer;
  justify-content: center;
  margin-top: 10px;
}
#modal-coi-copy > div ul {
  flex-direction: column;
  margin-block-start: 0;
  margin-block-end: 0;
  padding-inline-start: 0;
  padding: 10px;
  padding-top: 0;
  background: aliceblue;
}
#modal-coi-copy > div ul.selected {
  background: lightblue;
}
#modal-coi-copy > div ul li {
  display: flex;
  list-style-type: none;
}

.italic-note {
  padding-left: 10px;
  padding-right: 10px;
  font-size: small;
  font-style: italic;
}

.modal-content .col {
  display: inline-block;
  width: 45%;
  vertical-align: top;
}
.modal-content label {
  font-weight: bold;
}
.modal-content label.wrap {
  cursor: pointer;
  font-weight: normal;
}
.modal-content input {
  background: #fff;
}