@charset "utf-8";
/* CSS Document */
#emptySearchWarningMessageDiv,
#emptySearchWarningContainer,
#noResultsMessageDiv,
#numberOfResultsDiv,
#loadResultsAnimation,
#createVoterNoteModal,
#createVoterTagModal,
#loginAnimationContainer,
#loginErrorModal,
#accountCreatedModal,
#responseModal,
#submittedVoterTagModal,
#submittedVoterNoteModal,
#uploadingFileAnimation,
#fileUploadInputContainer,
#addToDirectoryAnimation,
#congressionalDistrictInputContainer,
#houseDistrictInputContainer,
#senateDistrictInputContainer,
#judicialDistrictInputContainer,
#cityInputContainer,
#precinctInputContainer,
#zipCodeInputContainer,
#countyInputContainer,
#tagManagerExportButtonContainer,
#createNewVoterTagModal{
    display: none;
}
/* ........... colors ................... */
/*
    white        -   #F2F4FF
    black        -   #212529
    dark gray    -   #808080c
    light gray   -   #cccccc
    purple       -   #996699
    dark purple  -   #734d73 
    light purple -   #c2a3c2
    green        -   #669999
    dark green   -   #4d7373
    light green  -   #85adad
    red          -   #BA2632
    dark red     -   #771820
*/

/* ........... css reset ................... */
* {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    vertical-align: baseline;
    background: transparent;
    box-sizing: border-box;
}

/* ........... type faces ................... */
@font-face {
  font-family: 'POLYA'; /* Name your font */
  src: url('/fonts/POLYA.woff') format('woff2') /* Path to the font file */
}
html{
    font-size: 62.5%;
}
h1{
    font-family: "canada-type-gibson", sans-serif;
    font-weight: 600;
    font-style: normal;
	font-size: 7rem;
}
h2{
    font-family: "canada-type-gibson", sans-serif;
    font-weight: 600;
    font-style: normal;
	font-size: 4rem;
}
h3{
    font-family: "canada-type-gibson", sans-serif;
    font-weight: 600;
    font-style: normal;
	font-size: 3rem;
}
button{
    font-family: "canada-type-gibson", sans-serif;
    font-weight: 600;
    font-style: normal;
	font-size: 2rem;
}
label, p, span, li, input, select, textarea{
    font-family: "canada-type-gibson", sans-serif;
    font-weight: normal;
    font-style: normal;
	font-size: 2rem;
    color: #212529;
}
body{
    float: left;
    width: 100%;
    height: auto;
    min-height: 100vh;
}
.wrapper{
    float: left;
    width: 100%;
    height: auto;
    min-height: 100vh;
    background-color: #F2F4FF;
}
.header{
    float: left;
    width: 100%;
    height: 70px;
    background-color: #F2F4FF;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.headerImageContainer{
    float: left;
    width: 20%;
    height: 70px;
    padding: 10px;
    display: flex;
    justify-content: flex-start;
    align-items: center;
}
.headerImageContainer img{
    display: block;
    width: auto;
    height: 50px;
}
.headerUserContainer{
    float: left;
    width: 60%;
    height: 70px;
    display: flex;
    justify-content: flex-start;
    align-items: center;
}
.usernameContainer, .currentCampaignContainer{
    float: left;
    width: 50%;
    height: auto;
}

/* ........... buttons ................... */
.textButton{
    float: left;
    width: 45%;
    height: auto;
    padding: 15px;
    color: #996699;
    background-color: #F2F4FF;
    border: 3px solid #734d73;
    border-radius: 10px;
    box-shadow: 0px 5px 0px 0px rgba(115,77,115,1), 0px 0px 10px -3px rgb(38, 25, 38, 0.8);
    transition-duration: 0.3s;
}
.textButton a{
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    padding: 15px;
    text-decoration: none;
    color: #996699;
}
.textButton:hover,
.textButton:focus-within{
    cursor: pointer;
    box-shadow: none;
}
.unavailableButton{
    background-color: #808080;
    border: 3px dashed #808080;
    color: #cccccc;
    box-shadow: none;
}
.unavailableButton a{
    color: #cccccc;
    cursor: not-allowed;
}
.unavailableButton:hover,
.unavailableButton:focus-within{
    cursor: not-allowed;
    box-shadow: none;
    animation-name: buttonShake;
    animation-duration: 0.5s;
    animation-timing-function: ease-in-out;
}
@keyframes buttonShake {
  0% {
    padding-left: 32px;
  }
  20%{
    padding-left: 35px;
  }
  40%{
    padding-left: 0;
  }
  60% {
    padding-left: 32px;
  }
  80%{
    padding-left: 0;
  }
  100% {
    padding-left: 32px;
  }
}
.ctaButton{
    color: #F2F4FF;
    background-color: #669999;
    border-color: #4d7373;
    box-shadow: 0px 5px 0px 0px rgba(77,115,115,1), 0px 0px 10px -3px rgba(25,38,38,0.8);
}
.ctaButton a{
    color: #F2F4FF;
    text-decoration: none;
}
.redButton{
    color: #BA2632;
    background-color: #F2F4FF;
    border-color: #BA2632;
    box-shadow: 0px 5px 0px 0px rgba(186,38,50,1), 0px 0px 10px -3px rgba(119,24,32,0.8);
}

/* ........... inputs ................... */
.inputContainer{
    float: left;
    width: 100%;
    height: auto;
    border-radius: 10px;
    border: 3px solid #734d73;
    background-color: #734d73;
    margin-bottom: 25px;
    transition-duration: 0.3s;
}
.inputContainer label{
    color: #F2F4FF;
    padding-left: 20px;
}
.inputContainer:hover,
.inputContainer:focus-within{
    border-color: #669999;
    background-color: #669999;
}
.inputContainer:hover input,
.inputContainer:focus-within input{
    border-color: #669999;
}
.halfWidthInputContainer{
    width: 48%;
}
.twoThirdsWidthInputContainer{
    width: 64%;
}
input[type=text], input[type=password], input[type=date]{
    float: left;
    width: 100%;
    height: 50px;
    padding: 5px 20px;
    background-color: #F2F4FF;
    color: #212529;
    border-top: 3px solid #734d73;
    border-bottom-left-radius: 8px;
    border-bottom-right-radius: 8px;
    transition-duration: 0.3s;
}
textarea{
    float: left;
    min-width: 100%;
    max-width: 100%;
    min-height: 100px;
    padding: 5px 20px;
    background-color: #F2F4FF;
    color: #212529;
    border-top: 3px solid #734d73;
    border-bottom-left-radius: 8px;
    border-bottom-right-radius: 8px;
    transition-duration: 0.3s;
}
.inputContainer:hover textarea,
.inputContainer:focus-within textarea{
    border-color: #669999;
}
.selectInput{
    width: 100%;
    height: 50px;
    padding-top: 5px;
    padding-right: 20px;
    padding-left: 20px;
    padding-bottom: 5px;
    background-color: #F2F4FF;
    color: #212529;
    -moz-appearance: none;
    -webkit-appearance: none;
    appearance: none;
    background-image: url(/images/arrowIcon.svg);
    background-repeat: no-repeat;
    background-position: 98% center;
    background-size: 15px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    border-top: 3px solid #734d73;
    border-bottom-left-radius: 8px;
    border-bottom-right-radius: 8px;
    transition-duration: 0.3s;
}
.inputContainer:hover .selectInput,
.inputContainer:focus-within .selectInput{
    border-color: #669999;
    cursor: pointer;
}
.radioInputContainer,
.checkboxInputContainer{
    float: left;
    width: 100%;
    height: 50px;
    background-color: #F2F4FF;
    border-top: 3px solid #734d73;
    border-bottom-left-radius: 4px;
    border-bottom-right-radius: 4px;
    overflow: hidden;
    transition-duration: 0.3s;
}
.inputContainer:hover .radioInputContainer,
.inputContainer:focus-within .radioInputContainer,
.inputContainer:hover .checkboxInputContainer,
.inputContainer:focus-within .checkboxInputContainer{
    border-color: #669999;
}
legend{
    display: none;
}
.radioOption,
.checkboxOption{
    float: left;
    width: auto;
    height: 50px;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    border: 2px solid transparent;
    color: #212529;
}
.radioOption:hover,
.radioOption:focus-within,
.checkboxOption:hover,
.checkboxOption:focus-within{
    background-color: #669999;
    cursor: pointer;
}
.radioOption label,
.checkboxOption label{
    font-size: 1.6rem;
    padding-left: 0;
    margin-bottom: 0;
    width: 100%;
    height: 50px;
    padding: 10px;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    color: #212529;
}
.radioOption label:hover,
.radioOption label:focus-within,
.checkboxOption label:hover,
.checkboxOption label:focus-within{
    cursor: pointer;
    color: #F2F4FF;
}
.radioOption input,
.checkboxOption input{
    margin-right: 10px;
}

/* ........... headers ................... */
.pageHeaderContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 20px;
    padding-top: 50px;
    padding-bottom: 50px;
    background-color: #F2F4FF;
}
.pageHeaderImageTextContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: center;
    align-items: center;
}
.pageHeaderImageTextContainer img{
    display: block;
    float: left;
    width: 75px;
    height: 75px;
    margin-right: 20px;
}
.pageHeaderImageTextContainer h1{
    color: #669999;
    text-align: center;
}

/* ........... message containers ................... */
.resultsMessageContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 20px;
}
.cornerBorderContainer{
  position: relative;
  display: inline-block;
  padding-top: 5px; 
  padding-left: 20px;
  padding-right: 20px;
  padding-bottom: 10px;
  font-size: 7rem;
  font-weight: 700;
  color: #996699;
  text-align: center;
}
/* Top-left & bottom-right */
.cornerBorderContainer::before,
.cornerBorderContainer::after{
  content: "";
  position: absolute;
  width: 15px;
  height: 15px;
  border: 5px solid #669999;
}
/* Top-left */
.cornerBorderContainer::before{
  top: 0;
  left: 0;
  border-right: none;
  border-bottom: none;
}
/* Bottom-right */
.cornerBorderContainer::after{
  bottom: 0;
  right: 0;
  border-left: none;
  border-top: none;
}
/* Create 2 more pseudo-elements using CSS variables hack */
.cornerBorderContainer span{
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.cornerBorderContainer span::before,
.cornerBorderContainer span::after{
  content: "";
  position: absolute;
  width: 15px;
  height: 15px;
  border: 5px solid #669999;
}
/* Top-right */
.cornerBorderContainer span::before{
  top: 0;
  right: 0;
  border-left: none;
  border-bottom: none;
}
/* Bottom-left */
.cornerBorderContainer span::after{
  bottom: 0;
  left: 0;
  border-right: none;
  border-top: none;
}

/* ........... animations ................... */
.loginAnimationContainer{
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    padding-top: 20px;
    background-color: #f2f4ff;
    display: none;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    scale: 0;
    opacity: 0;
    animation: openLoginAnimationModal 0.5s forwards ease-in-out;
    transition-duration: 0.3s;
    border-radius: 10px;
}
@keyframes openLoginAnimationModal{
    0% { 
        scale: 0;
        opacity: 0;
    }
    50%{
        opacity: 1;
    }
    70%{
        scale: 1.1; 
    }
    100% { 
        scale: 1; 
        opacity: 1;
    }
}
.loginAnimationContainer p{
    float: left;
    width: 100%;
    height: 50px;
    text-align: center;
    font-size: 2rem;
    display: flex;
    justify-content: center;
    align-items: center;
}
.animatedDots{
    display: inline-block;
}
.dots::after {
    font-size: 2rem;
    text-align: left;
    margin-left: 5px;
    width: 75px;
    content: '';
    display: inline-block;
    animation: dots 1.5s steps(3, end) infinite;
}
@keyframes dots {
    0% {
      content: '';
    }
    33% {
      content: '.';
    }
    66% {
      content: '..';
    }
    100% {
      content: '...';
    }
  }
.loginAnimationImageContainer{
    float: left;
    width: auto;
    height: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
}
.loginAnimationImageContainer img{
    display: block;
    width: 125px;
    height: auto;
    z-index: 5;
}
.lockAnimationSlotsContainer{
    position: absolute;
    left: 0;
    right: 0;
    top: 123px;
    height: 50px;
    overflow: hidden;
    display: flex;
    justify-content: space-around;
    align-items: center;
    border: 2px solid #000;
}
.reelContainer{
    float: left;
    width: 100%;
    height: 50px;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
}
.reelOne, .reelTwo, .reelThree{
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    float: left;
    width: 35px;
    transform: translateY(103px);
}
.reelOne{
    animation: spin 2s infinite ease-in-out;
} 
.reelTwo{
    animation: spin 2s infinite ease-in-out;
    animation-delay: 0.1s;
}
.reelThree{
    animation: spin 2s infinite ease-in-out;
    animation-delay: 0.2s;
}
.reelOne.loginFailed{
    animation: spin 2s ease-in-out;
} 
.reelTwo.loginFailed{
    animation: spin 2s ease-in-out;
    animation-delay: 0.1s;
}
.reelThree.loginFailed{
    animation: spin 2s ease-in-out;
    animation-delay: 0.2s;
}
.reelOne div, .reelTwo div, .reelThree div {
    width: 50px;
    height: 50px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 24px;
    font-weight: bolder;
    background-color: #f0f0f0;
    border-bottom: 2px solid #ddd;
}
/* Keyframes for spinning effect */
@keyframes spin{
    0% { 
        transform: translateY(-103px); 
    }
    100% { 
        transform: translateY(103px);
    }
}
.reelOneFinal, .reelTwoFinal, .reelThreeFinal{
    display: none;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    width: 35px;
    transform: translateY(-25px);
}
.reelOneFinal{
    animation: spinFinal 1s forwards ease-in-out;
}
.reelTwoFinal{
    animation: spinFinal 1s forwards ease-in-out;
    animation-delay: 0.1s;
}
.reelThreeFinal{
    animation: spinFinal 1s forwards ease-in-out;
    animation-delay: 0.2s;
}
.reelOneFinal div, .reelTwoFinal div, .reelThreeFinal div{
    width: 50px;
    height: 50px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 24px;
    font-weight: bolder;
    background-color: #f0f0f0;
    border-bottom: 2px solid #ddd;
}
@keyframes spinFinal{
    0% { 
        transform: translateY(-25px); 
    }
    100% { 
        transform: translateY(25px); 
    }
}
.animatedDots{
    display: inline-block;
}
.dots::after {
    font-size: 3rem;
    font-weight: medium;
    color: #669999;
    text-align: left;
    margin-left: 5px;
    width: 75px;
    content: '';
    display: inline-block;
    animation: dots 1.5s steps(3, end) infinite;
}
@keyframes dots {
    0% {
      content: '';
    }
    33% {
      content: '.';
    }
    66% {
      content: '..';
    }
    100% {
      content: '...';
    }
  }
.animationContainer{
    display: block;
    position: fixed;
    z-index: 1100;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background-color: rgba(38,25,38,0.9);
}
.animationContainer .cornerBorderContainer::before,
.animationContainer .cornerBorderContainer::after,
.animationContainer .cornerBorderContainer span::before,
.animationContainer .cornerBorderContainer span::after{
    border-color: #669999;
}
.searchAnimationContainer, .uploadAnimationContainer{
    display: block;
    width: 90%;
    max-width: 1000px;
    height: auto;
    max-height: calc(100% - 80px);
    padding: 10px;
    overflow-y: auto;
    overflow-x: hidden;
    margin: 80px auto;
    background-color: #F2F4FF;
    border-radius: 10px;
    box-shadow: 0px 0px 30px -3px rgb(38, 25, 38, 0.8);
}
.searchAnimationContainer p, .uploadAnimationContainer p{
    float: left;
    width: 100%;
    height: auto;
    text-align: center;
    padding: 10px;
    font-size: 3rem;
    font-weight: medium;
    color: #669999;
}
.uploadAnimationIconContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: center;
    align-items: center;
}
.searchIconContainer, .uploadIconContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 50px;
    margin-bottom: 50px;
}
.uploadIconContainer{
    position: relative;
    width: 150px;
    height: 150px;
}
.searchIconContainer img{
    display: block;
    width: 50px;
    height: auto;
    filter: invert(50%) sepia(7%) saturate(2400%) hue-rotate(251deg) brightness(89%) contrast(85%);
    animation: search 3s;
    animation-fill-mode: forwards;
    animation-timing-function: ease;
    animation-iteration-count: infinite;
}
@keyframes search{
    0%{
        margin-left: -100;
        scale: 1.4;
    }
    25%{
        margin-left: 100px;
        scale: 1;
    }
    50%{
        margin-left: -100px;
        scale: 1;
    }
    75%{
        margin-left: 100px;
        scale: 1;
    }
    100%{
        margin-left: -100;
        scale: 1.4;
    }
}
.searchAnimationContainer .searchIconContainer{
    width: 30%;
    height: 100px;
    margin-left: 35%;
}
.uploadIconCorner{
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    opacity: 1;
    scale: 1;
    transform: rotate(0deg);
    animation: uploadSpinStartFadeOut 2s;
    animation-fill-mode: forwards;
    animation-delay: 1s;
}
@keyframes uploadSpinStartFadeOut{
    0%{
        scale: 1;
        opacity: 1;
        transform: rotate(0deg);
    }
    70%{
        scale: 0.6;
        opacity: 0;
        transform: rotate(360deg);
    }
    100%{
        scale: 0.6;
        opacity: 0;
        transform: rotate(360deg);
    }
}
.uploadIconInnerCorner{
   position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    opacity: 0;
    scale: 1;
    transform: rotate(0deg);
    animation: uploadSpinStartFadeIn 2s;
    animation-fill-mode: forwards;
    animation-delay: 1s;
}
@keyframes uploadSpinStartFadeIn{
    0%{
        opacity: 0;
        scale: 1;
        transform: rotate(0deg);
    }
    90%{
        opacity: 1;
        scale: 0.6;
        transform: rotate(360deg);
    }
    100%{
        opacity: 0;
        scale: 0.6;
        transform: rotate(360deg);
    }
}
.uploadIconInnerCornerRunning{
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    opacity: 0;
    scale: 1;
    transform: rotate(0deg);
    animation: uploadSpinRunning 2s;
    animation-fill-mode: forwards;
    animation-iteration-count: infinite;
    animation-delay: 2.8s;
}
@keyframes uploadSpinRunning{
    0%{
        opacity: 1;
        scale: 0.6;
        transform: rotate(0deg);
    }
    50%{
        scale: 1;
    }
    100%{
        opacity: 1;
        scale: 0.6;
        transform: rotate(360deg);
    }
}
.uploadIconInnerArrow{
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    scale: 0.6;
    transform: rotate(0deg);
    animation: uploadScaleRunning 2s;
    animation-fill-mode: forwards;
    animation-iteration-count: infinite;
    animation-delay: 1.7s;
}
@keyframes uploadScaleRunning{
    0%{
        scale: 0.6;
    }
    50%{
        scale: 0.4;
    }
    100%{
        scale: 0.6;
    }
}
.searchProgressBarContainer{
    display: none;/* block */
    float: left;
    position: relative;
    width: 80%;
    height: 20px;
    overflow: hidden;
    border-radius: 10px;
    margin-left: 10%;
    margin-bottom: 10px;
    background-color: #cccccc;
}
.searchProgressBarFill{
    position: absolute;
    top: 0;
    left: 0;
    width: 25%;
    bottom: 0;
    right: 0;
    z-index: 1;
    overflow: hidden;
    transition-duration: 0.3s;
    background-color: #996699;
    border-radius: 10px;
}

/* ........... modals ................... */
.responseModal,
.createVoterNoteModal,
.createVoterTagModal,
.accountCreatedModal,
.loginErrorModal{
    display: block;
    position: fixed;
    z-index: 1100;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background-color: rgba(38,25,38,0.9);
}
.modalContentContainer{
    width: 90%;
    max-width: 1000px;
    height: auto;
    max-height: calc(100% - 80px);
    overflow-y: auto;
    overflow-x: hidden;
    margin: 80px auto;
    box-shadow: 0px 0px 15px -3px rgb(38, 25, 38, 0.5);
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: center;
    border-radius: 10px;
}
.modalHeader{
    float: left;
    width: 100%;
    min-height: 50px;
    height: auto;
    display: flex;
    align-items: center;
    background-color: #4d334d;
    background: url("https://grid.win/images/purple-polygon-background.svg");
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center center;
    position: sticky;
    top: 0;
    z-index: 600;
    padding-left: 20px;
    padding-right: 20px;
}
.modalHeader h2, .modalHeader span{
    color: #F2F4FF;
    font-size: 3rem;
}
.modalContent{
    float: left;
    width: 100%;
    height: auto;
    min-height: 200px;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    padding-bottom: 5%;
    padding: 20px;
    background-color: #F2F4FF;
}
.modalButtonContainer{
    float: left;
    position: sticky;
    bottom: 0;
    left: 0;
    z-index: 10;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: space-around;
    padding: 2%;
    padding-bottom: 20px;
    background-color: #F2F4FF;
}
.modalContentContainer .checkboxOption{
    min-height: 50px;
    height: auto;
}

/* ........... home page ................... */
.loginWrapper{
    float: left;
    width: 100%;
    height: 100vh;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: flex-start;
    background-color: #4d334d;
    background: url("https://grid.win/images/purple-polygon-background.svg");
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center center;
}
.loginContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: flex-start;
}
.loginLogoContainer{
    float: left;
    width: 70%;
    height: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 50px;
    margin-bottom: 25px;
}
.loginLogoContainer img{
    display: block;
    width: 50%;
    max-width: 750px;
    height: auto;
}
.loginInputContainer{
    float: left;
    width: 70%;
    max-width: 800px;
    height: auto;
    padding: 50px;
    padding-top: 50px;
    padding-bottom: 100px;
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    flex-wrap: wrap;
    background-color: #F2F4FF;
    border-radius: 10px;
    /*
    background: url("https://grid.win/images/white-polygon-pattern.svg"), linear-gradient(rgba(173, 133, 173, 1), rgba(173, 133, 173, 1));
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center center;
    */
    box-shadow: 0px 0px 30px -3px rgb(38, 25, 38, 0.8);
    position: relative;
}
.loginInputContainer button{
    float: right;
    margin-left: 66.66%;
    margin-top: 50px;
}

/* ........... dasboard ................... */
.dashboardPageWrapper{
    background-color: #996699;
}
.headerButtonContainer{
    float: left;
    width: 20%;
    padding-right: 20px;
}
.headerButton{
    width: 100%;
    height: 50px;
    padding: 5px;
}
.dashboardTopSection{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background-color: #4d334d;
    background: url("https://grid.win/images/purple-polygon-background.svg");
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center center;
}
.dataUpdatedContainer,
.countDownTimerContainer{
    float: left;
    width: 50%;
    height: auto;
    text-align: center;
    padding: 10px;
}
.dataUpdatedContainer p,
.countDownTimerContainer p{
    color: #F2F4FF;
    width: 100%;
}
.dashboardButtonContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 50px;
    background: url("https://grid.win/images/purple-polygon-background.svg");
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center center;
}
.dashboardButtonSection{
    float: left;
    width: 90%;
    height: auto;
    padding: 50px;
    padding-bottom: 100px;
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    flex-wrap: wrap;
    background-color: #F2F4FF;
    border-radius: 10px;
    box-shadow: 0px 0px 30px -3px rgb(38, 25, 38, 0.8);
}
.dashboardButtonSection button{
    margin-bottom: 20px;
    padding: 0;
}
.supportMessage{
    float: left;
    width: 100%;
    height: auto;
    padding: 100px 50px;
    background-color: #85adad;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
}
.supportMessage .cornerBorderContainer::before,
.supportMessage .cornerBorderContainer::after,
.supportMessage .cornerBorderContainer span::before,
.supportMessage .cornerBorderContainer span::after{
    border-color: #F2F4FF;
}
.supportTextContainer{
    float: left;
    width: 100%;
    height: auto;
    padding: 25px;
}
.supportMessage p{
    color: #F2F4FF;
}
.underDevelopmentContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    flex-wrap: wrap;
    background-color: #c2a3c2;
    padding-bottom: 100px;
}
.underDevelopmentImageText{
    float: left;
    width: 100%;
    height: auto;
    min-height: 300px;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: stretch;
    background-color: #F2F4FF;
}
.underDevelopmentImageContainer{
    float: left;
    width: 40%;
    height: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    background-color: #a464a4;
}
.underDevelopmentImageContainer img{
    display: block;
    width: 100%;
    height: auto;
}
.underDevelopmentTextContainer{
    float: left;
    width: 60%;
    height: auto;
    padding: 25px;
    padding-left: 50px;
    padding-right: 50px;
    display: flex;
    justify-content: center;
    align-items: center;
}
.underDevelopmentImageText h2{
    float: left;
    width: 100%;
    height: auto;
    color: #996699;
}
.underDevelopmentbuttonContainer{
    float: left;
    width: 90%;
    height: auto;
    margin-left: 5%;
    margin-top: 50px;
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    flex-wrap: wrap;
}
.underDevelopmentbuttonContainer button{
    margin-bottom: 20px;
}

/* ........... settings ................... */
.settingsPageWrapper{
    background-color: #4d334d;
    background: url("https://grid.win/images/purple-polygon-background.svg");
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center center;
}
.settingsInputContainer{
    float: left;
    width: 70%;
    height: auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    padding: 50px;
    margin-left: 15%;
    margin-top: 5%;
    border-radius: 10px;
    background-color: #F2F4FF;
    box-shadow: 0px 0px 30px -3px rgb(38, 25, 38, 0.8);
}
.settingsInputContainer .inputGroup{
    width: 45%;
}

/* ........... tag manager ................... */
.tagManagerPageWrapper{
    background-color: #F2F4FF;
}
.createTagContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 20px;
}
.createTagContainer button{
    width: 33.33%;
}
.tagSearchContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    flex-wrap: wrap;
}
.tagSearchInputContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    flex-wrap: wrap;
    padding: 20px;
}
.tagSearchContainer .inputContainer{
    width: 45%;
    padding-left: 0;
}
.tagSearchContainer .iconButton{
    width: 33.33%;
    margin-bottom: 10px;
}
.exportContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: center;
    align-items: center;
}
.exportContainer button{
    width: 33.33%;
}
.tagSearchResultsContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    margin-top: 50px;
}
.tagSearchResultRow{
    float: left;
    width: 100%;
    height: auto;
    min-height: 50px;
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    border-top: 2px dashed #734d73;
}
.tagSearchResultRow:first-child{
    border-top: none;
}
.tagSearchResultRow:nth-child(odd){
    background-color: #d6c2d6;
}
.tagSearchResultRow:nth-child(even){
    background-color: #c2d6d6;
}
.tagSearchResultRow:nth-child(odd):hover,
.tagSearchResultRow:nth-child(odd):focus-within{
    background-color: #c2a3c2;
}
.tagSearchResultRow:nth-child(even):hover,
.tagSearchResultRow:nth-child(even):focus-within{
    background-color: #a3c2c2;
}
.selectRowContainer{
    float: left;
    width: 50%;
    height: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    border-left: 5px solid transparent;
}
label.selectRowContainer{
    padding-left: 0;
}
.selectRowContainer input{
    float: left;
    width: 10%;
    height: 20px;
}
.selectRowContainer:hover{
    cursor: pointer;
    border-color: #996699;
}
.selectRowContainer p{
    float: left;
    width: 90%;
    height: auto;
}
.tagSearchResultButtonContainer{
    float: left;
    width: 50%;
    height: auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px;
}
.tagSearchResultButtonContainer button{
    width: 45%;
    margin-top: 0;
    padding: 5px;
}

/* ........... voter look up ................... */
.voterLookUpPageWrapper{
    /* Not sure why the above wrapper has the perspective 
    rule, but it messes with modals with scrollable pages */
    perspective: unset;
}
.voterSearchContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    flex-wrap: wrap;
}
.voterSearchNoteContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 50px;
    padding: 25px;
    background-color: #85adad;
}
.voterSearchNoteContainer .cornerBorderContainer{
    width: 80%;
}
.voterSearchNoteContainer .cornerBorderContainer::before, 
.voterSearchNoteContainer .cornerBorderContainer::after, 
.voterSearchNoteContainer .cornerBorderContainer span::before, 
.voterSearchNoteContainer .cornerBorderContainer span::after{
    border-color: #F2F4FF;
}
.voterSearchNoteContainer p{
    float: left;
    width: 100%;
    height: auto;
    text-align: center;
    margin-bottom: 15px;
    padding: 20px;
    color: #F2F4FF;
}
.voterSearchInputContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    padding: 20px;
}
.voterSearchContainer .inputContainer{
    width: 32%;
    padding-bottom: 0;
}
.voterSearchInputContainer .radioOption{
    width: 50%;
}
.voterSearchButtonContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 20px;
}
.voterSearchButtonContainer button{
    width: 23%;
}
.emptySearchWarningContainer,
.noResultsSearchWarningContainer,
.resultNumberContainer{
    float: left;
    width: 50%;
    height: auto;
    margin-left: 25%;
    margin-top: 40px;
    padding-left: 20px;
    padding-right: 20px;
}
.emptySearchWarningTextContainer,
.noResultsSearchWarningTextContainer,
.resultNumberTextContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 20px;
}
.emptySearchWarningContainer p,
.noResultsSearchWarningContainer p,
.resultNumberContainer p{
    float: left;
    width: auto;
    height: auto;
}
.voterResultsContainer{
    float: left;
    width: 100%;
    height: auto;
    margin-top: 50px;
    margin-bottom: 50px;
    background-color: #d6c2d6;
}
.voterResultsContainer input[type=text]{
    border:none;
}
.voterResultsContainer label{
    margin-bottom: 0;
    padding-left: 0;
}
.voterProfileButtonContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: space-around;
    align-items: center;
    margin-bottom: 25px;
    margin-top: 25px;
}
.voterProfileButtonContainer button{
    width: 20%;
}
.voterRow{
    float: left;
    width: 100%;
    height: auto;
    position: relative;
    border-top: 2px dashed #734d73;
}
.voterRow:first-child{
    border-top: none;
}
.voterRow:nth-child(odd) .collapseExpandRow{
    background-color: #d6c2d6;
}
.voterRow:nth-child(even) .collapseExpandRow{
    background-color: #c2d6d6;
}
.voterRow:nth-child(odd):hover .collapseExpandRow,
.voterRow:nth-child(odd):focus-within .collapseExpandRow{
    background-color: #c2a3c2;
}
.voterRow:nth-child(even):hover .collapseExpandRow,
.voterRow:nth-child(even):focus-within .collapseExpandRow{
    background-color: #a3c2c2;
}
.collapseExpandRow{
    float: left;
    width: 100%;
    height: auto;
    min-height: 50px;
    padding: 20px;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    position: sticky;
    top: 0;
}
.innerRow{
    float: left;
    width: 100%;
    height: 50px;
    padding-left: 10px;
    padding-right: 10px;
    /*border-bottom: 2px dotted #999999;*/
    display: flex;
    justify-content: flex-start;
    align-items: center;
}
.innerRow:nth-child(odd){
    background-color: #d6c2d6;
}
.innerRow:nth-child(even){
    background-color: #F2F4FF;
}
.innerRow:nth-child(odd):hover,
.innerRow:nth-child(odd):focus-within{
    background-color: #c2a3c2;
}
.innerRow:nth-child(even):hover,
.innerRow:nth-child(even):focus-within{
    background-color: #EAEBF0;
}
.leftSide, .rightSide{
    float: left;
    width: 50%;
    height: auto;
}
.collapseExpandRow .leftSide{
    width: 80%;
}
.collapseExpandRow .rightSide{
    width: 20%;
    display: flex;
    justify-content: flex-end;
    align-items: center;
}
.collapseExpandRow .rightSide:hover{
    cursor: pointer;
}
.arrowContainer{
    float: right;
    Width: 20%;
    height: auto;
}
.collapseExpandContainer{
    float: left;
    width: 100%;
    height: auto;
    display: block;
}
.voterPersonalDetailsSection.voterIdContainer{
    width: 25%;
}
.voterPersonalDetailsSection.voterNameContainer{
    width: 50%;
    margin-right: 5%;
}
.voterPersonalDetailsSection.voterCountyContainer{
    width: 20%;
}


.loadMoreResultsContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 50px;
    margin-top: 50px;
}
.loadMoreResultsContainer button{
    width: 20%;
    display: flex;
    justify-content: center;
    align-items: center;
}
.createVoterNoteModal,
.createVoterTagModal{
    display: block;
    position: fixed;
    z-index: 1100;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background-color: rgba(38,25,38,0.9);
}
.createVoterNoteModal .modalHeader h2 span,
.createVoterTagModal .modalHeader h2 span{
    font-size: 2.8rem;
    color: #f2f4ff;
}
.voterNoteTextarea{
    min-height: 200px;
}
.createVoterTagModal .inputContainer{
    margin-bottom: 25px;
}
.createVoterTagModal .checkboxInputContainer{
    padding: 20px;
    height: auto;
}
.createVoterTagModal .checkboxOption{
    width: 33.33%;
}
.createVoterNoteModal .modalButtonContainer button,
.createVoterTagModal .modalButtonContainer button{
    width: 40%;
}
.preMadeTagsContainer{
    float: left;
    width: 100%;
    height: auto;
    max-height: 600px;
    overflow: scroll;
    padding-bottom: 25px;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    flex-wrap: wrap;
}
.voterTagInputContainer{
    display: none;
}
/* new voter page design */
.collapseExpandContainer{
    padding: 20px;
    padding-top: 0;
    background-color: #f2f4ff;
}
.innerSectionContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    flex-wrap: wrap;
    padding: 20px;
    margin-bottom: 5%;
    border-radius: 10px;
}
.personalContainer{
    background-color: #d6c2d6;
    border: 3px solid #996699;
    margin-top: 20px;
}
.partySection{
    background-color: #c2d6d6;
    border: 3px solid #669999;
}
.voterImageContainer{
    float: left;
    width: 20%;
    height: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 20px;
    background-color: #F2F4FF;
    border-radius: 10px;
}
.voterImageContainer img{
    display: block;
    float: left;
    width: 90%;
    max-width: 150px;
    height: auto;
}
.voterPersonalDetailsContainer{
    float: left;
    width: 80%;
    height: auto;
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    flex-wrap: wrap;
    padding: 20px;
    padding-top: 0;
    padding-left: 50px;
}
.voterPersonalDetailsSection{
    float: left;
    width: 33.33%;
    height: auto;
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    flex-wrap: wrap;
    margin-bottom: 20px;
}
.fullWidthSection{
    width: 100%;
}
.threeQuarterWidth{
    width: 75%;
}
.halfWidth{
    width: 50%;
}
.quarterWidth{
    width: 25%;
}
.voterPersonalDetailsSection p{
    float: left;
    width: 100%;
    height: auto;
    /*color: #F2F4FF;*/
}
.collapsedButton,
.expandedButton{
    padding: 0;
    display: flex;
    justify-content: center;
    align-items: center;
}
.collapsedButton .collapseIcon{ /* row is collapsed */
    opacity: 0;
}
.collapsedButton .expandIcon{ /* row is collapsed */
    opacity: 1;
}
.expandedButton .collapseIcon{ /* row is expanded */
    opacity: 1;
}
.expandedButton .expandIcon{ /* row is expanded */
    opacity: 0;
}
.collapsedButton.expandingRowAnimation .expandIcon{ /* row is collapsed and button was clicked */
    opacity: 0;
    transform: rotateZ(0deg);
    animation: spinForwardsFadeOut 0.5s;
    animation-fill-mode: forwards;
    animation-timing-function: ease;
}
.collapsedButton.expandingRowAnimation .collapseIcon{
    opacity: 0;
    transform: rotateZ(0deg);
    animation: spinForwardsFadeIn 0.5s;
    animation-fill-mode: forwards;
    animation-timing-function: ease;
}
@keyframes spinForwardsFadeOut{
    from{
        opacity: 1;
        transform: rotateZ(0deg);
    }
    to{
        opacity: 0;
        transform: rotateZ(180deg);
    }
}
@keyframes spinForwardsFadeIn{
    from{
        opacity: 0;
        transform: rotateZ(0deg);
    }
    to{
        opacity: 1;
        transform: rotateZ(180deg);
    }
}
.expandedButton.expandingRowAnimation .expandIcon{ /* row is expanded and button was clicked */
    opacity: 0;
    transform: rotateZ(0deg);
    animation: spinBackwardsFadeOut 0.5s;
    animation-fill-mode: forwards;
    animation-timing-function: ease;
}
.expandedButton.expandingRowAnimation .collapseIcon{
    opacity: 0;
    transform: rotateZ(0deg);
    animation: spinBackwardsFadeIn 0.5s;
    animation-fill-mode: forwards;
    animation-timing-function: ease;
}
@keyframes spinBackwardsFadeOut{
    from{
        opacity: 0;
        transform: rotateZ(180deg);
    }
    to{
        opacity: 1;
        transform: rotateZ(0deg);
    }
}
@keyframes spinBackwardsFadeIn{
    from{
        opacity: 1;
        transform: rotateZ(180deg);
    }
    to{
        opacity: 0;
        transform: rotateZ(0deg);
    }
}
.buttonIconContainer{
    width: 50px;
    height: 50px;
    padding: 5px;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
}
.buttonIconContainer img{
    display: block;
    width: 80%;
    height: auto;
}
.collapseIcon, .expandIcon{
    width: 5px;
    height: auto;
    position: absolute;
    opacity: 1;
    transition-duration: 0.5s;
    transform: rotateZ(0deg);

}

/* ........... grand junction turnout ................... */

.grandJunctionTurnoutPageWrapper .dataUpdatedContainer{
    background-color: #4d334d;
    background: url("https://grid.win/images/purple-polygon-background.svg");
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center center;
    width: 100%;
}
.dataUpdatedContainer p{
    float: left;
    color: #F2F4FF;
    padding: 10px;
}
.downloadButtonContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 50px;
}
.downloadButtonContainer button{
    width: 33.33%;
}
.overallVoterTurnoutContainer,
.targetedVotersTurnoutContainer{
    float: left;
    width: 100%;
    height: auto;
    background-color: #c2d6d6;
    padding: 50px;
    background: url("https://grid.win/images/purple-polygon-background.svg") center center / cover no-repeat;
}
.targetedVotersTurnoutContainer{
    background-color: #d6c2d6;
    padding-bottom: 100px;
}
.overallVoterTurnoutContainer h2{
    margin-bottom: 20px;
    margin-top: 20px;
    text-align: center;
    color: #F2F4FF;
}
.targetedVotersTurnoutContainer h2{
    margin-bottom: 20px;
    margin-top: 20px;
    text-align: center;
    color: #F2F4FF;
}
.progressBarsContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: space-around;
    align-items: center;
    flex-wrap: wrap;
    padding-left: 5%;
    padding-right: 5%;background-color: rgb(242, 244, 255);
    border-radius: 10px;
    box-shadow: rgba(38, 25, 38, 0.8) 0px 0px 30px -3px;
}
.turnoutGroupsContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: space-around;
    align-items: stretch;
    flex-wrap: wrap;
}
.progressBarSection{
    float: left;
    width: 25%;
    height: auto;
    padding-left: 10px;
    padding-right: 10px;
    align-self: flex-end;
    margin-top: 10px;
}
.progressBarSection p{
    float: left;
    width: 100%;
    height: auto;
    text-align: center;
    margin-bottom: 20px;
    color: #212529;
}
.progressBarSection p span{
    float: left;
    width: 100%;
    height: auto;
    text-align: center;
    color: #212529;
}
.turnoutProgressBarContainer{
    float: left;
    position: relative;
    width: 100%;
    height: 20px;
    overflow: hidden;
    border-radius: 10px;
    margin-bottom: 10px;
    background-color: #85adad;
}
.targetedVotersTurnoutContainer .turnoutProgressBarContainer{
    background-color: #ad85ad;
}
.turnoutProgressBarFill{
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    bottom: 0;
    right: 0;
    z-index: 1;
    overflow: hidden;
    transition-duration: 0.3s;
    border-radius: 10px;
}
.blackProgressBar .turnoutProgressBarFill{
    background-color: #212529;
}
.blueProgressBar .turnoutProgressBarFill{
    background-color: #033f63;
}
.redProgressBar .turnoutProgressBarFill{
    background-color: #ba2632;
}
.purpleProgressBar .turnoutProgressBarFill{
    background-color: #734d73;
}
.grayProgressBar .turnoutProgressBarFill{
    background-color: #f1ecce;
}
.overallSection{
    margin-bottom: 20px;
}

/* ........... Recently Registered Republicans ................... */

.recentlyRegisteredRepublicansPageWrapper{
    /* Not sure why the above wrapper has the perspective 
    rule, but it messes with modals with scrollable pages */
    perspective: unset;
}
.recentlyRegisteredRepublicansInputContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding: 20px;
}
.recentlyRegisteredRepublicansButtonContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: center;
    align-items: center;
}
.recentlyRegisteredRepublicansOutputContainer{
    margin-top: 50px;
}

/* ........... county dashboard ................... */

.countyDashboardInputContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    padding: 20px;
}
.inputButtonComboContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    margin-bottom: 25px;
}
.inputButtonComboContainer .inputContainer{
    width: 66%;
    margin-bottom: 0;
}
.defaultCountyButtonContainer{
    float: left;
    width: 34%;
    height: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    padding-left: 2%;
}
.defaultCountyButtonContainer button{
    width: 100%;
}
.countyDashboardInputBottomSection{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
}
.countyDashboardInputBottomSection .inputContainer{
    width: 32%;
}
.countyDashboardInputContainer button.ctaButton{
    width: 32%;
    margin-top: 20px;
}
.countyDashboardResultsContainer{
    float: left;
    width: 100%;
    height: auto;
    padding: 20px;
    margin-top: 50px;
    padding: 50px;
    background-color: #c2d6d6;
    background: url("https://grid.win/images/purple-polygon-background.svg") center center / cover no-repeat;
}
.applyButtonContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: flex-end;
    align-items: center;
}
.applyButtonContainer button{
    width: 32%;
}
.officeDepartmentContainer,
.individualContainer,
.boardOrPositionContainer{
    float: left;
    width: 100%;
    height: auto;
    margin-top: 20px;
    border-radius: 10px;
    padding: 20px;
}
.officeDepartmentContainer,
.boardOrPositionContainer{
    background-color: #d6c2d6;
    border: 3px solid #996699;
}
.individualContainer{
    background-color: #c2d6d6;
    border: 3px solid #669999;
}
.resultTopSection{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
}
.resultImageContainer{
    float: left;
    width: 20%;
    height: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 20px;
    background-color: #F2F4FF;
    border-radius: 10px;
}
.resultImageContainer img{
    display: block;
    float: left;
    width: 90%;
    max-width: 150px;
    height: auto;
}
.resultsTextContainer{
    float: left;
    width: 70%;
    height: auto;
    padding: 20px;
    padding-left: 50px;
    padding-top: 0;
}
.socialMediaLinksContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: flex-start;
    align-items: stretch;
    margin-top: 20px;
}
.socialMediaLink{
    float: left;
    width: 10%;
    height: auto;
    display: flex;
    justify-content: flex-start;
    align-items: center;
}
.socialMediaLink img{
    float: left;
    display: block;
    width: 25px;
    height: auto;
}
.notesSection{
    float: left;
    width: 100%;
    height: auto;
    align-self: flex-end;
    margin-top: 10px;
}

/* ........... Create Survey ................... */

.createSurveyInputContainer{
    float: left;
    width: 100%;
    height: auto;
    padding: 20px;
}
.createSurveyInputContainer{
    float: left;
    width: 100%;
    height: auto;
    margin-top: 3%;
    padding: 20px;
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    flex-wrap: wrap;
}
.createSurveyTabContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: flex-start;
    align-items: flex-end;
}
.createSurveyInfoTab{
    float: left;
    width: 33.33%;
    height: 50px;
    display: flex;
    justify-content: center;
    align-items: center;
    transition-duration: 0.2s;
    border-right: 2px solid transparent;
    border-top: 2px solid transparent;
    border-left: 2px solid transparent;
    border-top-left-radius: 10px;
    background-color: #d6c2d6;
}
.createSurveyQuestionTab{
    float: left;
    width: 33.33%;
    height: 50px;
    display: flex;
    justify-content: center;
    align-items: center;
    transition-duration: 0.2s;
    border-right: 2px solid transparent;
    border-top: 2px solid transparent;
    border-left: 2px solid transparent;
    border-top-right-radius: 10px;
    background-color: #c2d6d6;
}
.createSurveyInfoTab p,
.createSurveyQuestionTab p{
    color: #212529;
}
.createSurveyInfoTab:hover,
.createSurveyInfoTab:focus{
    border-color: #996699;
    cursor: pointer;
}
.createSurveyQuestionTab:hover,
.createSurveyQuestionTab:focus{
    border-color: #669999;
    cursor: pointer;
}
.createSurveyInfoTab.currentTab{
    background-color: #996699;
    z-index: 50;
}
.createSurveyQuestionTab.currentTab{
    background-color: #669999;
    z-index: 50;
}
.currentTab p{
    color: #f2f4ff;
}
.currentSurveyTabContentContainer{
    float: left;
    width: 100%;
    height: auto;
    /*
    box-shadow: 0px 0px 10px 0px rgba(199,199,199,0.5);
    background-color: #fdfdfd;
    border: 2px solid #ae1b1d;
    */
}
.createSurveyInputContainer .rightSide,
.createSurveyInputContainer .leftSide{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    padding: 20px;
    border-radius: 10px;
    border-top-left-radius: 0;
}
.createSurveyInputContainer .rightSide{
    background-color: #d6c2d6;
    border: 3px solid #996699;
}
.createSurveyInputContainer .leftSide{
    display: none;
    background-color: #c2d6d6;
    border: 3px solid #669999;
}
.createSurveyInputContainer .radioInputContainer{
    height: auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.createSurveyInputContainer .radioOption{
    width: 33.33%;
    height: 50px;
}
.questionTextInput{
    min-height: 100px;
}
.multipleChoiceOptionContainer{
    float: left;
    width: 100%;
    height: auto;
}
.multipleChoiceOptionButtonContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    flex-wrap: wrap;
    padding: 10px;
}
.multipleChoiceOptionButtonContainer button{
    width: 45%;
}
.optionChoiceListContainer{
    float: left;
    width: 100%;
    height: auto;
    margin-top: 40px;
    padding: 10px;
}
.optionChoiceListContainer ul{
    float: left;
    width: 100%;
    height: auto;
}
.optionChoiceListContainer li{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    margin-bottom: 10px;
    border-bottom: 2px solid #999999;
    padding-bottom: 5px;
    transition-duration: 0.3s;
}
.optionChoiceListContainer li:hover{
    border-color: #ae1b1d;
}
.optionChoiceListContainer li.optionChoiceRemoved{
    animation: removeOptionChoice 0.5s forwards;
}
@keyframes removeOptionChoice{
    0% { 
        opacity: 1;
    }
    100% { 
        opacity: 0;
    }
}
#checkboxOptionListContainer li span{
    margin-right: 10px;
    font-size: 2rem;
}
#multipleChoiceOptionListContainer li span{
    margin-right: 10px;
    font-size: 2.5rem;
}

.removeOptionChoice{
    float: left;
    width: 45px;
    height: 50px;
    display: flex;
    justify-content: center;
    align-items: center;
    transition-duration: 0.3s;
}
.removeOptionChoice:hover{
    cursor: pointer;
}
.removeOptionChoice img{
    display: block;
    width: auto;
    height: 40px;
    filter: none;
}
.removeOptionChoice:hover img,
.removeOptionChoice:focus img{
    height: 45px;
    filter: invert(29%) sepia(96%) saturate(4620%) hue-rotate(344deg) brightness(69%) contrast(101%);
}
.removeOptionChoice:active img{
    filter: none;
    height: 40px;
}
.createQuestionButtonContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: flex-end;/*space between when remove button added*/
    align-items: center;
    flex-wrap: wrap;
    padding: 10px;
}
.createQuestionButton{
    width: 45%;
    margin-bottom: 10px;
}
#createQuestionButton{
    margin-top: 50px;
}
#editQuestionButton{
    width: 45%;
    margin-left: 25px;
}
.deleteQuestionButton{
    width: 45%;
    margin-bottom: 10px;
}
.createdQuestionListContainer{
    float: left;
    width: 25%;
    height: auto;
    padding: 10px;
    padding-top: 0;
}
.createdQuestionListContainer h2{
    margin-bottom: 20px;
    font-size: 2rem;
}
.createdQuestionList{
    float: left;
    width: 100%;
    height: auto;
}
.createdQuestionList button{
    width: 100%;
    padding: 5px;
    margin-bottom: 10px;
}
.createdQuestionList button.currentQuestionButton{
    border-left-width: 15px;
}
.createQuestionSection{
    float: left;
    width: 75%;
    height: auto;
    padding-left: 20px;
}
.createSurveyButtonContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 20px;
    margin-bottom: 40px;
    margin-top: 50px;
}
.createSurveyButtonContainer button{
    width: 33.33%;
}
#createCheckboxQuestionContainer,
#createMultipleChoiceQuestionContainer{
    display: none;
}

/* ........... District Comparison ................... */

.districtComparisonDropdownContainer{
    float: left;
    width: 50%;
    max-width: 600px;
    height: auto;
    padding: 20px;
}
.coloradoOutlineContainer{
    float: left;
    width: 30%;
    max-width: 600px;
    height: auto;
    padding: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
}
.coloradoOutlineContainer img{
    display: block;
    width: auto;
    height: 80px;
    margin-top: 20px;
}
.districtComparisonTableContainer{
    float: left;
    width: 100%;
    height: auto;
    padding-left: 5%;
    padding-right: 5%;
    margin-top: 40px;
    padding: 50px;
    background: url("https://grid.win/images/purple-polygon-background.svg") center center / cover no-repeat;
}
.districtComparisonRow{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    padding: 20px;
    margin-bottom: 10px;
    transition-duration: 0.2s;
    text-decoration: none;
    padding-left: 5%;
    padding-right: 5%;
    background-color: rgb(242, 244, 255);
    border-radius: 10px;
    box-shadow: rgba(38, 25, 38, 0.8) 0px 0px 30px -3px;
    margin-bottom: 20px;
}
a.districtComparisonRow:hover,
a.districtComparisonRow:focus{
    cursor: pointer;
    background-color: #d6c2d6;
}
a.districtComparisonRow:hover .districtComparisonPieChartPercents p,
a.districtComparisonRow:focus .districtComparisonPieChartPercents p{
    border-color: #F2F4FF;
}
.districtComparisonRow p{
    color: black;
}
.districtComparisonRowLeft{
    float: left;
    width: 50%;
    height: auto;
    padding-right: 20px;
}
.districtNumber,
.districtName,
.districtParty{
    float: left;
    width: 33.33%;
    height: auto;
    padding: 5px;
}
.democratParty{
    background-color: #2B4570;
}
.republicanParty{
    background-color: #AE1B1D;
}
.democratParty p,
.republicanParty p{
    color: #fdfdfd;
    text-align: center;
}
.districtComparisonRowRight{
    float: left;
    width: 50%;
    height: auto;
}
.districtComparisonBarGraph{
    float: left;
    width: 100%;
    height: 25px;
    border-radius: 10px;
    background: linear-gradient(90deg,
    rgba(174, 27, 29, 1) 0%, 
    rgba(174, 27, 29, 1) 25%, 
    rgba(174, 118, 166, 1) 25%, 
    rgba(174, 118, 166, 1) 50%, 
    rgba(43, 69, 112, 1) 50%, 
    rgba(43, 69, 112, 1) 75%, 
    rgba(195, 181, 159, 1) 75%, 
    rgba(195, 181, 159, 1) 100%);
}
.districtComparisonBarGraphPercents{
    float: left;
    width: 100%;
    height: auto;
}
.districtComparisonBarGraphPercents p{/* temp for testing */
    float: left;
    width: 25%;
    text-align: center;
}
.districtComparisonBarGraphPercents p span{
    float: left;
    width: 100%;
    height: auto;
}
.districtComparisonRow.pieChartVersion{/* temp */
    display: flex;
    justify-content: flex-start;
    align-items: center;
    width: 100%;
}
.districtComparisonRowRight.pieChartVersion{ /* temp */
    display: flex;
    justify-content: flex-start;
    align-items: center;
}
.districtComparisonPieChart{
    float: left;
    width: 100px;
    height: 100px;
    border-radius: 75px;
    background: conic-gradient(
    #ae1b1d 0deg,      
    #ae1b1d 60deg,     
    #F4978E 60deg, 
    #F4978E 120deg, 
    #ae76a6 120deg,
    #ae76a6 180deg,
    #2b4570 180deg,
    #2b4570 240deg,
    #5DA9E9 240deg,
    #5DA9E9 300deg,
    #c3b59f 300deg,
    #c3b59f 360deg
  );
}
.districtComparisonPieChartPercents{
    float: left;
    width: calc(100% - 100px);
    height: auto;
    padding-left: 25px;
}
.districtComparisonPieChartPercents p{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px dashed #ccc;
}
.colorKey{
    float: left;
    width: 15px;
    height: 15px;
    margin-right: 25px;
}
.darkRed{
    background-color: #ae1b1d;
}
.lightRed{
    background-color: #F4978E;
}
.purple{
    background-color: #ae76a6;
}
.darkBlue{
    background-color: #2b4570;
}
.lightBlue{
    background-color: #5DA9E9;
}
.tan{
    background-color: #c3b59f;
}
.gray{
    background-color: #636363;
}
.voteCount{
    width: 60%;
    text-align: right;
}
.votePercent{
    text-align: right;
}

/* ........... District Statistics ................... */

.districtMapImageContainer{
    float: left;
    width: 50%;
    height: auto;
    margin-left: 25%;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.districtMapImageContainer img{
    display: block;
    float: left;
    width: 100%;
    height: auto;
}

/* ........... generate list of voters ................... */

.searchFilterSelectContainer{
    width: 100%;
    height: auto;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    flex-wrap: wrap;
    margin-bottom: 10px;
    padding: 20px;
}
.searchFilterSelectContainer .inputContainer{
    width: 49%;
}

/* ........... generate list of voters ................... */

.fileUploadContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
}
.fileUploadPasswordContainer{
    float: left;
    width: 100%;
    height: auto;
    min-height: 80vh;
    padding: 50px;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    background-color: #c2d6d6;
    background: url("https://grid.win/images/purple-polygon-background.svg") center center / cover no-repeat;
}
.fileUploadPasswordInputContainer{
    float: left;
  width: 70%;
  height: auto;
  display: flex;
  justify-content: space-around;
  align-items: center;
  flex-wrap: wrap;
  padding: 50px;
  background-color: rgb(242, 244, 255);
  border-radius: 10px;
  box-shadow: rgba(38, 25, 38, 0.8) 0px 0px 30px -3px;
}
.fileUploadPage .fileUploadPasswordContainer button{
    width: 50%;
    margin-left: 25%;
}
.fileUploadInputContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    padding: 20px;
}
.fileUploadInputContainer .radioOption{
    width: 50%;
}
.fileUploadInputContainer #fileUploadInput{
    color: #f2f4ff;
    padding: 20px;
}
.fileUploadInputContainer #fileUploadInput:hover{
    cursor: pointer;
}
.fileUploadButtonContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 50px;
}
.fileUploadButtonContainer button{
    width: 33.33%;
}

/* ........... Victor Marx Delegate Race ................... */

.victorLogoContainer{
    float: left;
    width: 90%;
    height: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-left: 5%;
}
.victorLogoContainer img{
    display: block;
    width: 25%;
    height: auto;
}
.goalProgressBarContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: flex-start;
    align-items: stretch;
    flex-wrap: wrap;
    padding: 25px;
    margin-bottom: 25px;
}
.goalProgressBarContainer #map{
    margin-bottom: 25px;
}
.goalProgressBarSection{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    margin-bottom: 25px;
}
.goalProgressBarSection p{
    margin-bottom: 15px;
    font-size: 2rem;
    text-align: center;
    padding: 10px;
    width: 45%;
    min-height: 70px;
    border-radius: 5px;
    display: flex;
    justify-content: center;
    align-items: center;
}
#delegateRaceTopCaucusPotentialParagraph{
    background-color: #072654;
    color: #fdfdfd;
}
#delegateRaceTopCaucusPledgedParagraph{
    background-color: #516787;
    color: #fdfdfd;
}
#delegateRaceTopCountyPotentialParagraph{
    background-color: #CC0221;
}
#delegateRaceTopCountyPledgedParagraph{
    background-color: #db4d63;
}
#delegateRaceTopStatePotentialParagraph{
    background-color: #F9B21E;
}
#delegateRaceTopStatePledgedParagraph{
    background-color: #fac961;
}

.goalProgressBar{
    float: left;
    width: 100%;
    height: 30px;
    background-color: #cccccc;
    border-radius: 25px;
}
.goalProgressBarFill{
    float: left;
    width: 90%;
    height: 30px;
    background-color: #ae1b1d;
    border-radius: 25px;
}
.delegateRaceContainer{
    float: left;
    width: 100%;
    height: auto;
    padding: 25px;
    margin-top: 40px;
}
.delegateRaceRow{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    flex-wrap: wrap;
    padding: 10px;
    padding-bottom: 25px;
    margin-bottom: 10px;
    border-bottom: 2px solid #999999;
    transition-duration: 0.2s;
    text-decoration: none;
}
.delegateRaceRow:hover,
.delegateRaceRow:focus{
    border-bottom: 2px solid #ae1b1d;
}
.delegateRaceRow p{
    color: black;
}
.delegateRaceCountyName{
    float: left;
    width: 100%;
    height: auto;
    padding: 5px;
}
.delegateRaceRowLeft{
    float: left;
    width: 60%;
    height: auto;
    padding-right: 50px;
}
.delegateRaceRowLeftSection{
    float: left;
    width: 150px;
    height: auto;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    flex-wrap: wrap;
}
.delegateRaceDelegateNumber{
    float: left;
    width: 100%;
    height: auto;
    padding: 5px;
}
.delegateRaceDelegateNumber p{
    text-align: center;
}
.delegateRaceRowRight{
    float: left;
    width: 40%;
    height: auto;
    display: flex;
    justify-content: flex-start;
    align-items: center;
}
.delegateRacePieChart{
    float: left;
    width: 150px;
    height: 150px;
    border-radius: 100px;
    background: conic-gradient(
    /*
    #cc1400 0deg,       /* red *
    #cc1400 50deg,      /* red *
    #ed6a5a 50deg,      /* light red *
    #ed6a5a 100deg,     /* light red *
    #63326e 100deg,     /* light purple *
    #63326e 150deg,     /* light purple *
    #3e7cb1 150deg,     /* blue *
    #3e7cb1 200deg,     /* blue *
    #60afff 200deg,     /* light blue *
    #60afff 250deg,     /* light blue *
    #c3b59f 250deg,     /* tan *
    #c3b59f 300deg,     /* tan *
    #D6DBD2 300deg,     /* gray *
    #D6DBD2 360deg      /* gray */

    #ae1b1d 0deg,      
    #ae1b1d 50deg,     
    #F4978E 50deg, 
    #F4978E 100deg, 
    #ae76a6 100deg,
    #ae76a6 150deg,
    #2b4570 150deg,
    #2b4570 200deg,
    #5DA9E9 200deg,
    #5DA9E9 250deg,
    #c3b59f 250deg,
    #c3b59f 300deg,
    #636363 300deg,
    #636363 350deg
  );
}
.delegateRacePieChartPercents{
    float: left;
    width: calc(100% - 150px);
    height: auto;
    padding-left: 50px;
}
.delegateRacePieChartPercents .pirChartBreakDown{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px dashed #ccc;
}
.delegateRacePieChartPercents .colorKey{
    float: left;
    width: 15px;
    height: 15px;
    margin-right: 25px;
}
.delegateRacePieChartPercents .delegateName{
    float: left;
    width: calc(50% - 15px);
}
.delegateRacePieChartPercents .voteCount{
    float: left;
    width: 25%;
}
.delegateRaceRowProgressBarContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: center;
    align-items: stretch;
    flex-wrap: wrap;
}
.delegateRaceRowProgressBarSection{
    float: left;
    width: 100%;
    height: auto;
    min-height: 50px;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    margin-bottom: 10px;
}
.delegateRaceRowProgressBarSection p{
    margin-bottom: 10px;
    font-size: 1.4rem;
    text-align: center;
}
.delegateRaceRowProgressBar{
    float: left;
    width: 90%;
    height: 15px;
    background-color: #cccccc;
    border-radius: 25px;
}
.delegateRaceRowProspectsBarFill,
.delegateRaceRowCountyBarFill,
.delegateRaceRowStateBarFill{
    float: left;
    width: 100%;
    height: 15px;
    background-color: #ae1b1d;
    border-radius: 25px;
}
.victorPageProspectsFill{
    /* 
    #072654 rgba(7, 38, 84, 1) blue
    #516787 rgba(81, 103, 135, 1) light blue
    */
    background: linear-gradient(90deg,rgba(7, 38, 84, 1) 0%, rgba(7, 38, 84, 1) 50%, rgba(81, 103, 135, 1) 50%, rgba(81, 103, 135, 1) 100%, rgba(255, 255, 255, 0) 100%, rgba(255, 255, 255, 0) 100%);
}
.victorPageCountyFill{
    /*
    #CC0221 rgba(204, 2, 33, 1) red
    #db4d63 rgba(219, 77, 99, 1) light red
    */
    background: linear-gradient(90deg,rgba(204, 2, 33, 1) 0%, rgba(204, 2, 33, 1) 50%, rgba(219, 77, 99, 1) 50%, rgba(219, 77, 99, 1) 100%, rgba(255, 255, 255, 0) 100%, rgba(255, 255, 255, 0) 100%);
}
.victorPageStateFill{
    /*
    #F9B21E rgba(249, 178, 30, 1) yellow
    #fac961 rgba(250, 201, 97, 1) light yellow
    */
    background: linear-gradient(90deg,rgba(249, 178, 30, 1) 0%, rgba(249, 178, 30, 1) 50%, rgba(250, 201, 97, 1) 50%, rgba(250, 201, 97, 1) 100%, rgba(255, 255, 255, 0) 100%, rgba(255, 255, 255, 0) 100%);
}
.precinctNamesContainer{
    float: left;
    width: 100%;
    height: auto;
    margin-top: 20px;
}
.precinctName{
    float: left;
    width: 100%;
    min-height: 50px;
    height: auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-top: 1px dashed #ccc;
}
.precinctName p{
    float: left;
    width: 100%;
    height: auto;
}
.precinctName:first-child{
    border-top: none;
}

/* ........... elected Official Directory ................... */

.addToDirectoryButtonContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: center;
    align-items: center;
}
.addToDirectoryButtonContainer button{
    width: 33.33%;
    padding: 0;
}
.electedOfficialDirectoryInputContainer{
    float: left;
    width: 100%;
    height: auto;
    margin-top: 3%;
    padding: 20px;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    flex-wrap: wrap;
}
.bottomSearchContainer .inputContainer{
    width: 32%;
    padding-bottom: 0;
}
.topSearchContainer{
    float: left;
    width: 100%;
    height: auto;
    margin-top: 3%;
    display: flex;
    justify-content: flex-start;
    align-items: flex-end;
    flex-wrap: wrap;
    font-size: 1.4rem;
}
.topSearchContainer .labelWithButton{
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
}
.topSearchContainer .labelWithButton button{
    width: auto;
    margin-top: 0;
    padding: 5px;
    height: 35px;
}
.bottomSearchContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    flex-wrap: wrap;
}
.electedOfficialDirectoryButtonContainer{
    float: left;
    width: 100%;
    height: auto;
    margin-top: 3%;
    display: flex;
    justify-content: center;
    align-items: center;
}
.electedOfficialDirectoryButtonContainer button{
    width: 33.33%;
}
.resultContainer, #electedOfficialDirectoryResultsContainer{
    float: left;
    width: 100%;
    height: auto;
    padding: 20px;
    margin-top: 50px;
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    flex-wrap: wrap;
}
#electedOfficialDirectoryResultsContainer{
    background-color: #c2d6d6;
    background: url("https://grid.win/images/purple-polygon-background.svg") center center / cover no-repeat;
}
.applyButtonContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 50px;
}
.applyButtonContainer button{
    width: 33.33%;
}
.resultTopSection{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
}
.resultImageContainer{
    float: left;
    width: 30%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
}
.resultImageContainer img{
    display: block;
    width: 100%;
    height: auto;
}
.resultsTextContainer{
    float: left;
    width: 70%;
    height: auto;
    padding: 20px;
    padding-left: 50px;
    padding-top: 0;
}
.socialMediaLinksContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: flex-start;
    align-items: stretch;
    margin-top: 20px;
}
.socialMediaLink{
    float: left;
    width: 10%;
    height: auto;
    display: flex;
    justify-content: flex-start;
    align-items: center;
}
.socialMediaLink img{
    float: left;
    display: block;
    width: 25px;
    height: auto;
}
.notesSection{
    float: left;
    width: 100%;
    height: auto;
    align-self: flex-end;
    margin-top: 10px;
}

/* ........... add to elected official directory ................... */

.addToDirectoryInputContainer{
    float: left;
    width: 100%;
    height: auto;
    margin-top: 3%;
    padding: 20px;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
}
.addToDirectoryInputContainer .inputContainer{
    width: 32%;
    padding-bottom: 0;
}
.partisanInputContainer{
    float: left;
    width: 100%;
    height: auto;
    margin-top: 3%;
    display: flex;
    justify-content: flex-start;
    align-items: flex-end;
    flex-wrap: wrap;
    padding: 20px;
    background-color: #c2d6d6;
    background: url("https://grid.win/images/purple-polygon-background.svg") center center / cover no-repeat;
}
.electedOfficialDirectoryOfficeInfoContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
    padding: 20px;
    margin-bottom: 5%;
    border-radius: 10px;
    background-color: #d6c2d6;
    border: 3px solid #996699;
}
.electedOfficialDirectoryCurrentHolderInfoContainer{
    float: left;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
    padding: 20px;
    margin-bottom: 5%;
    border-radius: 10px;
    background-color: #c2d6d6;
    border: 3px solid #669999;
}
.partisanInputContainer h2{
    float: left;
    width: 100%;
    height: auto;
    text-align: center;
    margin-bottom: 20px;
    color: #f2f4ff;
}
.partisanInputContainer h3{
    float: left;
    width: 100%;
    height: auto;
    text-align: center;
    margin-bottom: 20px;
}
.partisanInputContainer .inputContainer{
    width: 32%;
    padding-bottom: 0;
    margin-bottom: 20px;
}
.partisanInputContainer .inputContainer.twoThirdsWidthInputContainer{
    width: 66%;
}
.addToDirectoryUploadButtonContainer{
    float: left;
    width: 100%;
    height: auto;
    margin-top: 3%;
    margin-bottom: 5%;
    padding: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
}
.addToDirectoryButtonContainer button{
    width: 33.33%;
}


/* responsive screen code */
@media only screen and (min-width: 1500px) {
/* Extra large devices (large laptops and desktops, 1500px and up) */
}
@media only screen and (max-width: 1499px) {
/* Extra large devices (large laptops and desktops, 1200px and up) */	
}
@media only screen and (max-width: 1199px) {
/* Large devices (laptops/desktops, 992px and up) */
    .headerImageContainer{
        width: 15%;
    }
    .headerUserContainer{
        width: 55%;
    }
    .headerButtonContainer{
        width: 30%;
    }
    .dashboardButtonContainer{
        padding: 20px;
    }
    .dashboardButtonSection{
        width: 95%;
        margin-top: 2.5%;
        margin-bottom: 2.5%;
    }
}
@media only screen and (max-width: 991px) {
/* Medium devices (landscape tablets, 768px and up) */
    .header{
        flex-wrap: wrap;
        height: auto;
    }
    .headerImageContainer{
        order: 1;
    }
    .headerUserContainer{
        order: 3;
        width: 100%;
        height: auto;
        margin-top: 10px;
    }
    .usernameContainer, .currentCampaignContainer{
        text-align: center;
        margin-bottom: 10px;
    }
    .headerButtonContainer{
        order: 2;
    }
/* .......... grand junction .......... */
    .progressBarSection{
        width: 50%;
    }
/* .......... animations .......... */
    .searchAnimationContainer .searchIconContainer{
        width: 70%;
        height: 100px;
        margin-left: 15%;
    }
/* .......... voter look up .......... */
    .voterSearchInputContainer{
        flex-wrap: wrap;
    }
    .voterSearchButtonContainer button,
    .loadMoreResultsContainer button{
        width: 48%;
    }
    .voterProfileButtonContainer button{
        width: 48%;
    }
/* .......... district comparison .......... */
    .districtComparisonRow.pieChartVersion{
        flex-wrap: wrap;
    }
    .districtComparisonRowLeft{
        width: 100%;
        margin-bottom: 20px;
        padding-right: 0;
    }
    .districtComparisonRowRight.pieChartVersion{
        width: 100%;
    }

}
@media only screen and (max-width: 767px) {
/* Small devices (portrait tablets and large phones, 600px and up) */
    .headerButtonContainer{
        width: 50%;
    }
/* .......... login ..........*/
    .loginInputContainer{
        width: 90%;
        padding: 20px;
        justify-content: center;
    }
    .loginInputContainer button{
        width: 66.66%;
        margin-left: 0;
        margin-top: 20px;
    }
/* .......... settings .......... */
    .settingsInputContainer{
        width: 80%;
        margin-left: 10%;
        padding: 20px;
    }
/* .......... voter look up .......... */
    .voterSearchInputContainer .inputContainer{
        width: 48%;
    }
    .voterImageContainer{
        width: 100%;
        margin-bottom: 20px;
    }
    .voterPersonalDetailsContainer{
        width: 100%;
        padding: 0;
    }
    .voterPersonalDetailsContainer p,
    .partySection p{
        font-size: 1.6rem;
    }
/* .......... grand junction ..........*/
    .downloadButtonContainer button{
        width: 50%;
    }
/* .......... recently registered republicans ..........*/
    .recentlyRegisteredRepublicansButtonContainer button{
        width: 80%;
    }
}
@media only screen and (max-width: 600px) {
/* Extra small devices (phones, 600px and down) */
    h1{
        font-size: 5rem;
    }
    h2{
        font-size: 3rem;
    }
    label, p, span, li, input, select, textarea{
        font-size: 1.6rem;
    }
/* .......... login ..........*/
    .loginLogoContainer{
        margin-top: 20px;
    }
    .loginLogoContainer img{
        width: 80%;
    }
    .loginInputContainer{
        width: 90%;
        padding: 20px;
    }
    .loginInputContainer button{
        width: 100%;
        margin-left: 0;
        margin-top: 20px;
    }
/* .......... dashboard ..........*/
    .dashboardButtonSection{
        padding-bottom: 50px;
    }
    .dashboardButtonSection button{
        width: 100%;
        margin-bottom: 30px;
    }
    .supportTextContainer p{
        font-size: 2rem;
    }
    .underDevelopmentImageContainer,
    .underDevelopmentTextContainer{
        width: 100%;
        padding: 50px;
    }
    .underDevelopmentbuttonContainer{
        width: 95%;
        margin-left: 2.5%;
    }
    .underDevelopmentbuttonContainer button{
        width: 100%;
        margin-bottom: 30px;
    }
    .exportContainer button{
        width: 50%;
    }
/* .......... grand junction .......... */
    .downloadButtonContainer button{
        width: 80%;
    }
/* .......... settings .......... */
    .settingsInputContainer{
        width: 90%;
        margin-left: 5%;
        padding: 20px;
    }
    .settingsInputContainer .inputGroup{
        width: 100%;
    }
/* .......... voter look up .......... */
    .voterResultsContainer .rightSide .textButton{
        width: 80%;
    }
    .voterPersonalDetailsSection,
    .voterPersonalDetailsSection.quarterWidth,
    .voterPersonalDetailsSection.halfWidth
    .voterPersonalDetailsSection.threeQuarterWidth,
    .voterPersonalDetailsSection.voterIdContainer,
    .voterPersonalDetailsSection.voterNameContainer,
    .voterPersonalDetailsSection.voterCountyContainer{
        width: 100%;
    }
/* .......... district comparison .......... */
    .districtComparisonTableContainer{
        padding: 20px;
    }
}
@media only screen and (max-width: 500px) {
    .pageHeaderImageTextContainer{
        flex-wrap: wrap;
    }
    .pageHeaderImageTextContainer h1{
        width: 100%;
    }
    .pageHeaderImageTextContainer img{
        width: 60px;
        height: 60px;
    }
    .headerButtonContainer{
        width: 65%;
    }
/* .......... dashboard ..........*/
    .dashboardTopSection{
        flex-wrap: wrap;
    }
    .dataUpdatedContainer, .countDownTimerContainer{
        width: 100%;
    }
    .dashboardButtonContainer{
        padding: 20px;
    }
    .supportTextContainer p{
        font-size: 2rem;
    }
    .underDevelopmentImageContainer, .underDevelopmentTextContainer{
        width: 100%;
    }
/* .......... grand junction .......... */
    .progressBarSection{
        width: 80%;
    }
    .downloadButtonContainer button{
        width: 80%;
    }
/* .......... voter look up .......... */
    .voterSearchNoteContainer .cornerBorderContainer{
        width: 100%;
    }
    .voterSearchInputContainer{
        padding-bottom: 0;
    }
    .voterSearchInputContainer .inputContainer{
        width: 100%;
    }
    .voterSearchButtonContainer{
        flex-wrap: wrap;
        padding-top: 0;
    }
    .voterSearchButtonContainer button{
        width: 100%;
    }
    .loadMoreResultsContainer button{
        width: 90%;
    }
    .emptySearchWarningContainer, 
    .noResultsSearchWarningContainer, 
    .resultNumberContainer{
        width: 90%;
        margin-left: 5%;
    }
    .emptySearchWarningContainer p, 
    .noResultsSearchWarningContainer p, 
    .resultNumberContainer p{
        font-size: 2rem;
    }
    .voterProfileButtonContainer{
        flex-wrap: wrap;
        margin-bottom: 0;
    }
    .voterProfileButtonContainer button{
        width: 90%;
        margin-bottom: 20px;
    }
/* .......... district comparison .......... */
    .districtComparisonDropdownContainer,
    .coloradoOutlineContainer{
        width: 100%;
    }
    .districtNumber,
    .districtName,
    .districtParty{
        width: 100%;
    }
    .votePercent{
        width: 25%;
    }
/* .......... generate list of voters .......... */
    .searchFilterSelectContainer .inputContainer{
        width: 100%;
    }
/* .......... victor marks .......... */
    .goalProgressBarSection p{
        width: 100%;
        min-height: 50px;
    }
}
@media only screen and (max-width: 400px) {
/* Super Extra small devices (phones, 400px and down) */
/* ........... dasboard ................... */
    .headerImageContainer{
        width: 40%;
    }
    .headerImageContainer img{
        display: block;
        width: 100%;
        height: auto;
    }
    .headerButtonContainer{
        width: 60%;
    }
    .dashboardButtonSection{
        padding: 20px;
        padding-bottom: 0;
    }
    .exportContainer button{
        width: 90%;
    }
    .tagSearchContainer .inputContainer{
        width: 100%;
    }
/* .......... district comparison .......... */
    .districtComparisonPieChart{
        width: 75px;
        height: 75px;
    }
    .districtComparisonPieChartPercents{
        width: calc(100% - 75px);
    }
    .colorKey{
        margin-right: 0;
    }
/* .......... recently registered republicans ..........*/
    .recentlyRegisteredRepublicansInputContainer{
        flex-wrap: wrap;
    }
    .recentlyRegisteredRepublicansInputContainer .inputContainer,
    .recentlyRegisteredRepublicansButtonContainer button{
        width: 100%;
    }
}