.e2018_banner {

    width: 100%;
    height: 80px;
    text-align: center;
  
    font-family: "Times New Roman", Times, serif;
    font-size: 36px;
    text-transform: uppercase;
    color: #fff;
    line-height: 80px;
  
    margin: -20px 0 5px;
    padding-top:8px;
  
    background: #DC0000;
    background: -moz-linear-gradient(top, #DC0000 0%, #b50012 100%);
    background: -webkit-linear-gradient(top, #DC0000 0%,#b50012 100%);
    background: linear-gradient(to bottom, #DC0000 0%,#b50012 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#DC0000', endColorstr='#b50012',GradientType=0 );
  }
  .e2018_banner .text span {
    text-shadow: -2px 2px 3px rgba(0, 0, 0, 1);
  }

#live_results_alpha_1_mobile .e2018_banner {
  line-height: 1;
  height: 36px;
}
  
  .e2018_top_results {
    box-sizing: border-box;
    overflow: auto;
    font: 11px "Times New Roman",Times,serif;
  }
  .e2018_top_results * {
    box-sizing: border-box;
  }
  .e2018_top_results a {
    color: inherit;
    /* font-family: 'ROBOTO', sans-serif; */
  }
  .e2018_top_results .dem {
    color: #0000cc;
  }
  .e2018_top_results .gop {
    color: #cc0000;
  }
    .e2018_top_results .top_result {
      float: left;
      border: 1px solid #999;
      width: calc(100% / 3);
    }
    .e2018_top_results .top_result:not(:first-child) {
      border-left: none;
    }
      .e2018_top_results .top_result > .title {
        background: #555;
        color: #fff;
        font-size: 20px;
        font-weight: bold;
        letter-spacing: 1px;
        padding: 2px 0 3px;
        text-transform: uppercase;
        text-align: center;
      }
      .e2018_top_results .top_result > .score {
        overflow: auto;
        padding: 3px 0;
        min-height: 44px;
        position: relative;
      }
        .e2018_top_results .top_result > .score > .party {
          float: left;
          width: 50%;
          text-align: center;
          font-size: 14px;
          font-weight: bold;
        }
          .e2018_top_results .top_result > .score > .party > .score {
            font-size: 18px;
          }
    #live_results_alpha_1_mobile .e2018_top_results .top_result > .title {
      font-size: 17px;
    }
    #live_results_alpha_1_mobile .e2018_top_results .top_result > .score {
      min-height: 32px;
    }
      #live_results_alpha_1_mobile .e2018_top_results .top_result > .score > .party {
        text-align: center;
      }
        #live_results_alpha_1_mobile .e2018_top_results .top_result > .score > .party > div {
          display: inline-block;
        }
    .e2018_stars {
      color: #666;
      font: 10px "Times New Roman",Times,serif;
      letter-spacing: 10px;
      margin: 0 0 -2px;
      padding: 4px 0 0;
      text-align: center;
    }
    #live_results_alpha_1_mobile .e2018_stars {
      padding-bottom: 5px;
    }
  
  .e2018_spinner {
    display: table;
    width: 100%;
    height: 100%;
    overflow: hidden;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(255,255,255,0.75);
    z-index: 10;
  }
  .e2018_spinner > div {
    display: table-cell;
    vertical-align: middle;
  }
  .e2018_spinner > div > div {
    margin: 0 auto;
    height: 28px;
    width: 28px;
    animation: spinner_rotate 0.8s infinite linear;
    border: 6px solid #666;
    border-right-color: transparent;
    border-radius: 50%;
  }
  .e2018_spinner.light > div > div {
    border-color: #fff;
  }
  
  @keyframes spinner_rotate {
    0%    { transform: rotate(0deg); }
    100%  { transform: rotate(360deg); }
  }
  
  .e2018_results_blocks * {
    box-sizing: border-box;
  }
  .e2018_results_blocks a {
    color: inherit;
    /* font-family: 'ROBOTO', sans-serif;
    font-size: 10.5px; */
  }
  .e2018_results_blocks .dem {
    color: #0000cc;
  }
  .e2018_results_blocks .gop {
    color: #cc0000;
  }
  
    .e2018_results_blocks .results_block {
      border: 1px solid #ccc;
      margin-top: 5px;
      position: relative;
      min-height: 100px;
    }
  
      .e2018_results_blocks .results_block > .title {
        background: #666;
        padding: 2px 0 3px;
        position: relative;
      }
  
        .e2018_results_blocks .results_block > .title .text {
          font: 20px "Times New Roman",Times,serif;
          font-weight: bold;
          color: #fff;
          letter-spacing: 1px;
          text-transform: uppercase;
          text-align: center;
        }
  
        .e2018_results_blocks .results_block > .title .refresh {
          background: url('/images/icon-reload.png') 0 0 no-repeat;
          color: #fff;
          font-size: 12px;
          padding: 1px 0px 2px 16px;
          position: absolute;
          right: 8px;
          top: 7px;
          cursor: pointer;
        }
  
      .e2018_results_blocks .results_block > .overview {
        margin: 0;
        padding: 2px 0;
        font: normal 20px Arial, Helvetica, sans-serif;
        font-weight: bold;
        text-align: center;
      }
        .e2018_results_blocks .results_block > .overview > span:first-child {
          padding-right: 5px;
        }
  
      .e2018_results_blocks .results_block > table.races {
        font: 11px "Times New Roman",Times,serif;
        width: 100%;
        border-collapse: collapse;
      }
      .e2018_results_blocks .results_block > table.races.left_column {
        width: 50%;
        float: left;
        /* display: none; */
      }
      .e2018_results_blocks .results_block > table.races.right_column {
        width: 50%;
        float: right;
        /* display: none; */
      }
      .e2018_results_blocks .results_block > table.races.left_column .spacer,
      .e2018_results_blocks .results_block > table.races.right_column .spacer {
        display: none;
      }
      .e2018_results_blocks .results_block > table.races.left_column td,
      .e2018_results_blocks .results_block > table.races.right_column td {
        white-space: nowrap;
      }
      .e2018_results_blocks .results_block > table.races.left_column > tbody > tr > td.name,
      .e2018_results_blocks .results_block > table.races.right_column > tbody > tr > td.name {
        padding-right:4px;
      }
      .e2018_results_blocks .results_block > table.races.left_column > tbody > tr > td.candidate,
      .e2018_results_blocks .results_block > table.races.right_column > tbody > tr > td.candidate {
        padding-right:2px;
        padding-left:2px;
      }
        .e2018_results_blocks .results_block > table.races > tbody > tr > th,
        .e2018_results_blocks .results_block > table.races > tbody > tr > td {
          padding: 0;
        }
        .e2018_results_blocks .results_block > table.races > tbody > tr:first-child > th {
          background: #dedede;
          border-top: 1px solid #ccc;
          border-bottom: 1px solid #ccc;
          text-align: center;
          padding: 1px 0 2px;
        }
        .e2018_results_blocks .results_block > table.races > tbody > tr:first-child > th:first-child {
          width: 25%;
          text-align: left;
          padding-left: 5px;
        }
        .e2018_results_blocks .results_block > table.races > tbody > tr:first-child > th:nth-child(2) {
          width: 18%;
        }
        .e2018_results_blocks .results_block > table.races > tbody > tr:first-child > th:nth-child(3) {
          width: 18%;
        }
        .e2018_results_blocks .results_block > table.races > tbody > tr > td {
          text-align: center;
          border-bottom: 1px solid #eee;
          padding: 1px 0 2px;
        }
        .e2018_results_blocks .results_block > table.races > tbody > tr > td.name {
          text-align: left;
          padding-left: 3px;
        }
        .e2018_results_blocks .results_block > table.races > tbody > tr > td.spacer {
          
        }
        .e2018_results_blocks .results_block > table.races > tbody > tr > td.hold {
          width: 67px;
        }
          .e2018_details .results_block > table.races > tbody > tr > td.hold span.short,
          .e2018_results_blocks .results_block > table.races > tbody > tr > td.hold span.short {
            display: none;
          }
        .e2018_results_blocks .results_block > table.races > tbody > tr > td.percent_in {
          width: 44px;
          /*display: none;*/ /* Block % in column*/
        }
        /*/.e2018_details .results_block > table.races > tbody > tr > td.percent_in { Block % in column
          display: none;
        } */     
        /* .e2018_results_blocks .results_block > table.races > tbody > tr > th.percent_in { Block % in column
          display: none;
        } */
        .e2018_results_blocks .results_block > table.races > tbody > tr.pickup > td {
          font-weight: bold;
        }
        .e2018_results_blocks .results_block > table.races > tbody > tr.winner.is_ga_special > td {
          font-weight: bold;
        }
        .e2018_results_blocks .results_block > table.races > tbody > tr.winner > td.name {
          padding-left: 17px;
          background: url('/images/electoral_check_v2.gif') 3px 3px no-repeat;
        }
        .e2018_results_blocks .results_block > table.races > tbody > tr.winner.gop > td.name {
          background: url('/images/electoral_check_gop.gif') 3px 3px no-repeat;
        }
        .e2018_results_blocks .results_block > table.races > tbody > tr.winner.dem > td.name {
          background: url('/images/electoral_check_dem.gif') 3px 3px no-repeat;
        }
      
      .e2018_results_blocks .results_block > .footer {
        font: 10px Verdana, Arial, Helvetica, sans-serif;
        text-align: center;
        padding: 3px;
        background: #eee;
        color: #d30015;
      }
  
  .e2018_map_widget {
    margin-bottom: 10px;
  }
  .e2018_map_widget * {
    box-sizing: border-box;
  }
  .e2018_map_widget a {
    color: inherit;
    font-weight: bold;
  }
  .e2018_map_widget .dem {
    color: #0000cc;
  }
  .e2018_map_widget .gop {
    color: #cc0000;
  }
  .e2018_map_widget > .title {
    background: #dc0000;
    font-size: 1.2em;
    font-weight: bold;
    padding: 8px 0;
    text-align: center;
    color: #fff;
  }
  .e2018_map_widget > ul.nav {
    padding: 5px 5px 5px 0;
    margin: 0;
    list-style: none;
    overflow: auto;
    background: #dc0000;
    font-size: 14px;
  }
    .e2018_map_widget > ul.nav > li {
      float: left;
      width: calc((100% / 3) - 5px);
      text-align: center;
      margin-left: 5px;
      background: #eee;
      padding: 5px 0;
      cursor: pointer;
    }
    .e2018_map_widget > ul.nav > li.active,
    .e2018_map_widget > ul.nav > li:hover {
      color: #fff;
      background: rgba(68,68,68,1);
      background: -moz-linear-gradient(top, rgba(68,68,68,1) 0%, rgba(102,102,102,1) 53%, rgba(102,102,102,1) 100%);
      background: -webkit-gradient(left top, left bottom, color-stop(0%, rgba(68,68,68,1)), color-stop(53%, rgba(102,102,102,1)), color-stop(100%, rgba(102,102,102,1)));
      background: -webkit-linear-gradient(top, rgba(68,68,68,1) 0%, rgba(102,102,102,1) 53%, rgba(102,102,102,1) 100%);
      background: -o-linear-gradient(top, rgba(68,68,68,1) 0%, rgba(102,102,102,1) 53%, rgba(102,102,102,1) 100%);
      background: -ms-linear-gradient(top, rgba(68,68,68,1) 0%, rgba(102,102,102,1) 53%, rgba(102,102,102,1) 100%);
      background: linear-gradient(to bottom, rgba(68,68,68,1) 0%, rgba(102,102,102,1) 53%, rgba(102,102,102,1) 100%);
      filter: progid:DXImageTransform.Microsoft.gradient( startColorstr="#444444", endColorstr="#666666", GradientType=0 );
    }
  .e2018_map_widget > .pages {
    border: 1px solid #eee;
    font-size: 14px;
  }
    .e2018_map_widget > .pages > .page {
      position: relative;
    }
      .e2018_map_widget > .pages > .page > .score {
        background: #f4f4f4;
        overflow: auto;
        padding: 4px 0;
      }
        .e2018_map_widget > .pages > .page > .score > .party {
          float: left;
          width: 50%;
        }
        .e2018_map_widget > .pages > .page > .score > .party.dem {
          text-align: right;
          padding-right: 5px;
        }
        .e2018_map_widget > .pages > .page > .score > .party.gop {
          text-align: left;
          padding-left: 5px;
        }
      .e2018_map_widget > .pages > .page > .map {
        overflow: hidden;
        height: 0px;
        width: 100%;
        padding-top: 61%;
        position: relative;
      }
        .e2018_map_widget > .pages > .page > .map img {
          width: 100%;
          position: absolute;
          top: 0;
          left: 0;
        }
  
  .e2018_details * {
    box-sizing: border-box;
  }
  .e2018_details a {
    color: inherit;
  }
  .e2018_details .dem {
    color: #0000cc;
  }
  .e2018_details .gop {
    color: #cc0000;
  }
    .e2018_details .house_pages_nav {
      text-align: center;
      margin: 20px 0;
    }
      .e2018_details .house_pages_nav > a.active {
        text-decoration: underline;
      }
    .e2018_details > .map {
      overflow: auto;
      position: relative;
    }
      .e2018_details > .map img.map_image {
        margin: 20px auto;
        display: block;
        width: 100%;
      }
    .e2018_details > .title > h2 {
      font-size: 32px;
      letter-spacing: 4px;
      margin: 10px 0 6px;
      text-transform: uppercase;
    }
    .e2018_details > .title > h3 {
      text-align: center;
    }
      .e2018_details > .title > h2 > span.year {
        font-size: 40px;
      }
      .e2018_details > .title > h2 > span.first {
        font-size: 40px;
      }
    .e2018_details > ul.top_nav {
      border-bottom: 3px double #ccc;
      border-top: 3px double #ccc;
      font: 12px "Lucida Grande", Tahoma, sans-serif;
      list-style: none;
      margin: 18px 0 8px;
      padding: 0;
      text-transform: uppercase;
      overflow: auto;
      text-align: center;
    }
      .e2018_details > ul.top_nav > li {
        list-style: none;
        float: left;
        width: calc(100% / 3);
        padding: 8px 0 7px;
      }
        .e2018_details > ul.top_nav > li > .top {
          color: #cc0000;
          display: block;
        }
        .e2018_details > ul.top_nav > li > .bottom {
          color: #999;
          display: block;
          font-size: 10px;
        }
    .e2018_details .top_results {
      margin-bottom: 5px;
      overflow: auto;
    }
    .e2018_details .top_results .result {
      font: 12px "Times New Roman", Times, serif;
      float: left;
      border: 1px solid #999;
      width: calc(100% / 3);
    }
    .e2018_details .top_results .result:not(:first-child) {
      border-left: none;
    }
      .e2018_details .top_results .result > .title {
        background: #555;
        color: #fff;
        font-size: 14px;
        font-weight: bold;
        letter-spacing: 1px;
        padding: 2px 0 3px;
        text-transform: uppercase;
        text-align: center;
      }
      .e2018_details .top_results .result > .score {
        overflow: auto;
        padding: 3px 0;
        min-height: 44px;
        position: relative;
      }
        .e2018_details .top_results .result > .score > .party {
          float: left;
          width: 50%;
          text-align: center;
          font-size: 14px;
        }
          .e2018_details .top_results .result > .score > .party > .score {
            font-size: 18px;
            font-weight: bold;
          }
      .e2018_details .top_results .result > .states {
        border-top: 1px solid #999;
        background: #f0f0f0;
        padding: 5px 0;
      }
        .e2018_details .top_results .result > .states > select {
          font-size: 12px;
          display: block;
          margin: 0 auto;
        }
    .e2018_details .results_block {
      border: 1px solid #ccc;
      margin-top: 5px;
      position: relative;
      min-height: 100px;
      margin-bottom: 20px;
    }
      .e2018_details .results_block > .map {
        overflow: hidden;
        position: relative;
      }
        /* live_map_<office>.svg is trimmed to the map, so no overscale or
           negative margin (those cropped the old screenshot PNG's whitespace). */
        .e2018_details .results_block > .map img.map_image {
          margin: 0 auto;
          display: block;
          width: 100%;
          height: auto;
          box-sizing: border-box;
          padding: 6px 6px 0;
        }
  
      .e2018_details .results_block > .title {
        background: #666;
        padding: 2px 0 3px;
        position: relative;
      }
  
        .e2018_details .results_block > .title .text {
          font: 20px "Times New Roman",Times,serif;
          font-weight: bold;
          color: #fff;
          letter-spacing: 1px;
          text-transform: uppercase;
          text-align: center;
        }
  
        .e2018_details .results_block > .title .refresh {
          background: url('/images/icon-reload.png') 0 0 no-repeat;
          color: #fff;
          font-size: 12px;
          padding: 1px 0px 2px 16px;
          position: absolute;
          right: 8px;
          top: 7px;
          cursor: pointer;
        }
  
      .e2018_details .results_block > .overview {
        margin: 0;
        padding: 2px 0;
        font: normal 20px Arial, Helvetica, sans-serif;
        font-weight: bold;
        text-align: center;
      }
        .e2018_details .results_block > .overview > span:first-child {
          padding-right: 5px;
        }
        .e2018_details .results_block > table.races {
            font: 11px "Times New Roman",Times,serif;
            width: 100%;
            border-collapse: collapse;
          }
          .e2018_details .results_block > table.races > tbody > tr > th,
          .e2018_details .results_block > table.races > tbody > tr > td {
            padding: 0;
          }
          .e2018_details .results_block > table.races > tbody > tr:first-child > th {
            background: #dedede;
            border-top: 1px solid #ccc;
            border-bottom: 1px solid #ccc;
            text-align: center;
            padding: 1px 0 2px;
          }
          .e2018_details .results_block > table.races > tbody > tr:first-child > th:first-child {
            width: 25%;
          }
          .e2018_details .results_block > table.races > tbody > tr:first-child > th:nth-child(2) {
            width: 18%;
          }
          .e2018_details .results_block > table.races > tbody > tr:first-child > th:nth-child(3) {
            width: 18%;
          }
          .e2018_details .results_block > table.races > tbody > tr > td {
            text-align: center;
            border-bottom: 1px solid #eee;
            padding: 1px 0 2px;
          }
          .e2018_details .results_block > table.races > tbody > tr > td.state {
            text-align: left;
            font-weight: bold;
            font-size: 16px;
            padding: 10px 8px 4px;
            border-bottom: 1px solid #ccc;
          }
          .e2018_details .results_block > table.races > tbody > tr > td.name {
            text-align: left;
            padding-left: 3px;
          }
          .e2018_details .results_block > table.races > tbody > tr.pickup > td {
            font-weight: bold;
          }
          .e2018_details .results_block > table.races > tbody > tr.winner > td.name {
            padding-left: 17px;
            background: url('/images/electoral_check_v2.gif') 3px 3px no-repeat;
          }
          .e2018_details .results_block > table.races > tbody > tr.winner.gop > td.name {
            background: url('/images/electoral_check_gop.gif') 3px 3px no-repeat;
          }
          .e2018_details .results_block > table.races > tbody > tr.winner.dem > td.name {
            background: url('/images/electoral_check_dem.gif') 3px 3px no-repeat;
          }
          .e2018_details .results_block > table.races > tbody > tr.winner.is_ga_special > td {
            font-weight: bold;
          }
  
  .e2018_state {
    margin-top: 30px;
  }
  .e2018_state * {
    box-sizing: border-box;
  }
  .e2018_state a {
    color: inherit;
  }
  .e2018_state .dem {
    color: #0000cc;
  }
  .e2018_state .gop {
    color: #cc0000;
  }
    .e2018_state > .title {
      position: relative;
    }
      .e2018_state > .title > h2 {
        font-size: 32px;
        letter-spacing: 4px;
        margin: 10px 0 6px;
        text-transform: uppercase;
        text-align: center;
      }
        .e2018_state > .title > h2 > span.year {
          font-size: 40px;
        }
        .e2018_state > .title > h2 > span.first {
          font-size: 40px;
        }
    .e2018_state .pages_nav {
      text-align: center;
      margin: 20px 0;
    }
      .e2018_state .pages_nav > a {
        padding: 0 10px;
        border-left: 1px solid #666;
      }
      .e2018_state .pages_nav > a:first-child {
        border-left: none;
      }
      .e2018_state .pages_nav > a.active {
        text-decoration: underline;
      }
  
  /* Alpha 3 */
  
  .hp_map_chart_widget_v2 {
    margin: 30px 0;
  }
  .hp_map_chart_widget_v2 div {
    box-sizing: border-box;
  }
  .hp_map_chart_widget_v2 a {
    color: inherit;
  }
  .hp_map_chart_widget_v2 h3 {
    background-color: #dc0000;
    padding: 10px 0;
    color: #fff;
    font-family: "Times New Roman", Times, serif;
    font-weight: normal;
    font-size: 22px;
    text-align: center;
    text-transform: uppercase;
    margin: 0;
    text-shadow: 0px 0px 2px rgba(0,0,0,0.5);
  }
  .hp_map_chart_widget_v2 h3 span.letter,
  .hp_map_chart_widget_v2 h3 span.year {
    font-size: 28px;
  }
  .hp_map_chart_widget_v2 .map_chart_content {
    overflow: hidden;
    border: 1px solid #ccc;
    border-top: none;
    background: #e2e2e2;
    clear:both;
  }
    .hp_map_chart_widget_v2 .map_chart_content .section {
      border-left: 1px solid #ccc;
      position: relative;
    }
    .hp_map_chart_widget_v2 .map_chart_content .section:first-child {
      border-left: none;
    }
  .hp_map_chart_widget_v2 .national_chart {
    float: left;
    width: 50%;
  }
  .hp_map_chart_widget_v2 .electoral_map {
    float: left;
    width: calc(100% / 3);
  }
  .hp_map_chart_widget_v2 .score_line {
    background: #EBEBEB;
    background: -moz-linear-gradient(top, #fbfbfb 0%, #ebebeb 100%); /* FF3.6-15 */
    background: -webkit-linear-gradient(top, #fbfbfb 0%,#ebebeb 100%); /* Chrome10-25,Safari5.1-6 */
    background: linear-gradient(to bottom, #fbfbfb 0%,#ebebeb 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fbfbfb', endColorstr='#ebebeb',GradientType=0 ); /* IE6-9 */
  
    border-bottom: 1px solid #ccc;
    padding: 4px 0;
  }
  .hp_map_chart_widget_v2 .title {
    color: #666;
    text-align: center;
    text-transform: uppercase;
    font-size: 11px;
    font-weight: bold;
    letter-spacing: 3px;
    margin: 0;
  }
  .hp_map_chart_widget_v2 .scores {
    overflow: hidden;
    text-align: center;
    box-sizing: border-box;
    padding-top: 4px;
  }
    .hp_map_chart_widget_v2 .scores .dem {
      color: #0000cc;
      padding-right: 2px;
    }
    .hp_map_chart_widget_v2 .scores .gop {
      color: #cc0000;
      padding-left: 2px;
    }
    .hp_map_chart_widget_v2 .scores .dem,
    .hp_map_chart_widget_v2 .scores .gop {
      font-size: 14px;
      font-weight: bold;
    }
  
  .hp_map_chart_widget_v2 .national_chart .chart {
    position:relative;
    width: 100%;
    padding-top: 67%;
    overflow: hidden;
  }
    .hp_map_chart_widget_v2 .national_chart .chart img {
      width: calc(100% + 2px);
      display: block;
      position:absolute;
      top:0;left:0;right:0;
      margin: -1px 0 0 -1px;
    }
  .hp_map_chart_widget_v2 .electoral_map .map {
    position:relative;
    width: 100%;
    padding-top: calc(67% + 20px);
    overflow: hidden;
  
    background: #e2e2e2;
    /*background: #ffffff;
    background: -moz-linear-gradient(top, #ffffff 0%, #ffffff 87%, #f4f4f4 100%); 
    background: -webkit-linear-gradient(top, #ffffff 0%,#ffffff 87%,#f4f4f4 100%); 
    background: linear-gradient(to bottom, #ffffff 0%,#ffffff 87%,#f4f4f4 100%); */
  }
    .hp_map_chart_widget_v2 .electoral_map .map img {
      width: 100%;
      display: block;
      position:absolute;
      padding-top:10px;
      top: 0;
      background: #fff;
    }
    .hp_map_chart_widget_v2 .electoral_map .map select {
      position: absolute;
      bottom: 5px;
      left: 10px;
      right: 10px;
      width: calc(100% - 20px);
      font-size: 11px;
    }
  
  
  .hp_map_chart_widget_v2 .scroller {
      background: #eeeeee;
      overflow: hidden;
      position: relative;
      padding: 5px 0;
      border-bottom: 1px solid #ccc;
  }
  .hp_map_chart_widget_v2 .scroller .title {
    position: absolute;
    width: 40px;
    top: 0;
    left: 0;
    bottom: 0;
    background: #eeeeee url('/images/election_latest_polls_arrow.png') no-repeat center center;
    z-index: 100;
  }
  .hp_map_chart_widget_v2 .scroller .poll_list {
      margin: 0 0 0 40px;
      padding: 0;
      list-style: none;
      float: left;
      /*width: calc(100% - 40px);*/
      overflow: hidden;
      white-space: nowrap;
      font-size: 14px;
      position: relative;
      left: 0;
  }
  .hp_map_chart_widget_v2 .scroller .poll_list > li {
      display: inline-block;
      margin-right: 20px;
  }
  .hp_map_chart_widget_v2 .scroller .poll_list > li > a.alt {
      color: #cc0000;
  }
  
  .hp_map_chart_widget_v2 .map_ut {
    font-size: 11px;
    display: block;
    text-align: center;
    position:absolute;
    bottom: 0;
    left: 0;
    right: 0;
  }
    .hp_map_chart_widget_v2 .map_ut a {
      color: #d30015;
    }

  /*DN - 2020*/
  .e2018_results_blocks .results_block tr.close_time_title {
    display: block;
  }
  .e2018_results_blocks .results_block tr.candidate_title {
    display: block;
  }
  .e2018_results_blocks .results_block th.second { width: 25%;}
  .e2018_results_blocks .results_block th.second_b { width: 25%;}

  .state_closeups_container {
    position: relative;
    min-height: 180px;
    border: 1px solid #eee;
    padding: 10px;
  }
    .state_closeups_container .reporting_unit {
      margin-top: -10px;
    }
    .state_closeups_container .reporting_unit:first-child {
      margin-top: 0;
    }
      .state_closeups_container .reporting_unit a.title {
        font-size: 1.1em;
        font-weight: normal;
      }
      .state_closeups_container .reporting_unit .reporting {
        font-size: 0.7em;
        color: #999;
      }
      .state_closeups_container .reporting_unit table.candidate {
        font-size: 0.7em;
        width: 100%;
      }
        .state_closeups_container .reporting_unit table.candidate .affiliation {
          text-align: center;
        }
        .state_closeups_container .reporting_unit table.candidate .name {
          
        }
        .state_closeups_container .reporting_unit table.candidate .percentage {
          text-align: center;
        }
        .state_closeups_container .reporting_unit table.candidate .votes {
          text-align: right;
        }
        .state_closeups_container .reporting_unit table.candidate .spread {
          border-top: 1px solid #ccc;
          text-align: right;
        }
          .state_closeups_container .reporting_unit table.candidate .spread a {
            font-weight: normal;
          }
        .state_closeups_container .reporting_unit .candidate .bar {
          text-align: center;
        }
        .state_closeups_container .reporting_unit .candidate .bar .bar_container {
          width: 98px;
          display: inline-block;
          background: #ccc;
          height: 10px;
          border: 1px solid #ccc;
        }
        .state_closeups_container .reporting_unit .candidate .bar .bar_inner {
          display: block;
          background: #9933cc;
          height: 8px;
        }
        .state_closeups_container .reporting_unit .candidate .bar .bar_inner.gop {
          background: #cc0000;
        }
        .state_closeups_container .reporting_unit .candidate .bar .bar_inner.dem {
          background: #0000cc;
        }
  #live_results_beta_2_mobile .state_closeups_container {
    min-height: 100px;
  }
  
  /* RESPONSIVE */
  
  @media only screen and (max-width: 1149px) {
  
    .e2018_details .top_results .result > .title {
      font-size: 12px;
    }
    .e2018_details .top_results .result > .states > select {
      font-size: 10px;
    }
  }
  
  @media only screen and (max-width: 1149px) {
  
    .e2018_details .top_results .result > .title {
      font-size: 12px;
    }
    .e2018_details .top_results .result > .states > select {
      font-size: 10px;
    }
  }
  
  @media only screen and (max-width: 1023px) {
  
    .e2018_details .top_results .result {
      width: 100%;
      margin-bottom: 10px;
    }
    .e2018_details .top_results .result:not(:first-child) {
      border-left: 1px solid #999;
    }
    .e2018_details .top_results .result > .title {
      font-size: 14px;
    }
    .e2018_details .top_results .result > .states > select {
      font-size: 12px;
    }
  }
  
  @media only screen and (max-width: 767px) {
  
    .e2018_details .top_results .result {
      width: calc(100% / 4);
      margin-bottom: 0;
    }
    .e2018_details .top_results .result:not(:first-child) {
      border-left: none;
    }
    .e2018_details .top_results .result > .title {
      font-size: 12px;
    }
    .e2018_details .top_results .result > .states > select {
      font-size: 10px;
    }
    .hp_map_chart_widget_v2 .title {
      font-size: 16px;
    }
    .e2018_details .results_block > .map img.map_image {
      margin-bottom: 0;
    }
  }
  
  @media only screen and (max-width: 619px) {
  
    .e2018_details .top_results .result {
      width: 100%;
      margin-bottom: 10px;
    }
    .e2018_details .top_results .result:not(:first-child) {
      border-left: 1px solid #999;
    }
    .e2018_details .top_results .result > .title {
      font-size: 14px;
    }
    .e2018_details .top_results .result > .states > select {
      font-size: 12px;
    }
  }
  
  @media only screen and (max-width: 589px) {
    .e2018_banner {
      font-size: 34px;
    }
    .e2018_top_results .top_result {
      width: calc(100%);
    }
    .e2018_top_results .top_result:not(:first-child) {
      border-left: 1px solid #999;
    }
    .e2018_results_blocks .results_block > table.races > tbody > tr > th.other_party,
    .e2018_results_blocks .results_block > table.races > tbody > tr > td.other_party,
    .e2018_details .results_block > table.races > tbody > tr > th.other_party,
    .e2018_details .results_block > table.races > tbody > tr > td.other_party {
      display: none;
    }
    .hp_map_chart_widget_v2 .national_chart {
      width: 100%;
    }
    .hp_map_chart_widget_v2 .electoral_map {
      width: 100%;
    }
  }
  @media only screen and (max-width: 399px) {
    .e2018_banner {
      font-size: 26px;
    }

    .hide_on_phone_portrait {
      display: none;
    }
  }
  
  /* Hide/Show entire widgets depending on mobile or not, on homepage */
  /* Any css that only applies whether it's mobile or not goes here */
  
  #live_results_alpha_1_mobile,
  #live_results_alpha_2_mobile,
  #live_results_alpha_3_mobile,
  #live_results_beta_1_mobile,
  #live_results_beta_2_mobile {
    display: none;
  }
  
  #live_results_alpha_1_mobile .e2018_banner {
    margin-top: 20px;
  }

  .e2018_results_blocks .results_block > table.races.full_column,
  .e2018_results_blocks .results_block > table.races.full_column {
    display: none;
  }

  .e2018_results_blocks .results_block > table.races td.tdih_2020,
  .e2018_results_blocks .results_block > table.races td.tdih_2016 {
    color: black;
    font-weight: unset !important;
}
  .nep_attribution {
    font-size: 10px;
    color: grey;
  }

  /* Senate/Governor row labels: full state name on desktop, AP abbreviation on mobile */
  .e2018_results_blocks .results_block > table.races td.name span.state_short,
  .e2018_details .results_block > table.races td.name span.state_short {
    display: none;
  }
  @media only screen and (max-width: 767px) {
  
    #live_results_alpha_1,
    #live_results_alpha_2,
    #live_results_alpha_3,
    #live_results_beta_2 {
      display: none;
    }

    .e2018_results_blocks .results_block > table.races.full_column {
      display: table;
    }
  
    #live_results_alpha_1_mobile,
    #live_results_alpha_2_mobile,
    #live_results_alpha_3_mobile,
    #live_results_beta_1_mobile,
    #live_results_beta_2_mobile {
      display: block;
    } 

    .e2018_results_blocks .results_block > table.races.left_column,
    .e2018_results_blocks .results_block > table.races.right_column {
      display: none;
    }
    .state_closeups_container .reporting_unit .reporting {
      font-size: 0.9em;
    }
    .state_closeups_container .reporting_unit table.candidate {
      font-size: 0.9em;
    }

    #live_results_alpha_2_mobile .e2018_results_blocks .results_block .spacer {
      display: none;
    }
    /* Homepage widget on phones: Democrats and Republicans on one line, at a
       smaller size so both fit. The extra .results_block > keeps these ahead of
       the 2024 app_v10.css, which stacks them with display: block. */
    #live_results_alpha_2_mobile .e2018_results_blocks .results_block > .overview {
      font-size: 16px;
      white-space: nowrap;
    }
    #live_results_alpha_2_mobile .e2018_results_blocks .results_block > .overview > span,
    #live_results_alpha_2_mobile .e2018_results_blocks .results_block > .overview > span.gop,
    #live_results_alpha_2_mobile .e2018_results_blocks .results_block > .overview > span.dem {
      display: inline;
    }
    /* Fixed layout with the same column widths in every block, so the Senate,
       Governor and House tables line up. Candidate columns are left aligned.

       The homepage also loads the 2024 app_v10.css, which sets the first block's
       state column to 40%, hides % in on every block after the first, and turns
       off wrapping. Its selectors use :first-child / :not(:first-child), so the
       overrides below add :nth-child(n) (matches every block) to equal that
       specificity and win by loading later. */
    #live_results_alpha_2_mobile .e2018_results_blocks .results_block > table.races {
      table-layout: fixed;
    }
    #live_results_alpha_2_mobile .e2018_results_blocks .results_block:nth-child(n) > table.races > tbody > tr:first-child > th:first-child {
      width: 24%;
    }
    #live_results_alpha_2_mobile .e2018_results_blocks .results_block:nth-child(n) > table.races > tbody > tr > .percent_in {
      display: table-cell;
    }
    #live_results_alpha_2_mobile .e2018_results_blocks .results_block > table.races > tbody > tr > td.name,
    #live_results_alpha_2_mobile .e2018_results_blocks .results_block > table.races > tbody > tr > td.candidate {
      white-space: normal;
    }
    #live_results_alpha_2_mobile .e2018_results_blocks .results_block > table.races > tbody > tr:first-child > th:nth-child(2),
    #live_results_alpha_2_mobile .e2018_results_blocks .results_block > table.races > tbody > tr:first-child > th:nth-child(3) {
      width: 27%;
      text-align: left;
      padding-left: 3px;
    }
    #live_results_alpha_2_mobile .e2018_results_blocks .results_block > table.races > tbody > tr > td.candidate {
      text-align: left;
      padding-left: 3px;
      padding-right: 2px;
    }
    #live_results_alpha_2_mobile .e2018_results_blocks .results_block > table.races > tbody > tr > th.percent_in {
      width: 10%;
    }
    /* The widths above add up to 100%, leaving no room for a third-party column */
    #live_results_alpha_2_mobile .e2018_results_blocks .results_block > table.races > tbody > tr > .other_party {
      display: none;
    }
    #live_results_alpha_2_mobile .e2018_results_blocks .results_block > table.races > tbody > tr > th.hold {
      width: 12%;
    }
    #live_results_alpha_2_mobile .e2018_results_blocks .results_block > table.races > tbody > tr > td.hold {
      width: auto;
      white-space: nowrap;
      text-align: left;
      padding-left: 4px;
    }
    #live_results_alpha_2_mobile .e2018_results_blocks .results_block > table.races > tbody > tr > td.name .district_label {
      display: none;
    }
    .e2018_details .results_block > table.races > tbody > tr > td.hold span.short,
    #live_results_alpha_2_mobile .e2018_results_blocks .results_block > table.races > tbody > tr > td.hold span.short {
      display: inline;
    }
    .e2018_details .results_block > table.races > tbody > tr > td.hold span.full,
    #live_results_alpha_2_mobile .e2018_results_blocks .results_block > table.races > tbody > tr > td.hold span.full {
      display: none;
    }

    /* AP state abbreviations, to give the candidate columns more room */
    .e2018_results_blocks .results_block > table.races td.name span.state_short,
    .e2018_details .results_block > table.races td.name span.state_short {
      display: inline;
    }
    .e2018_results_blocks .results_block > table.races td.name span.state_full,
    .e2018_details .results_block > table.races td.name span.state_full {
      display: none;
    }

    /* Landing page: shrink % in and hold to their content; Dem/GOP take the space */
    .e2018_details .results_block > table.races > tbody > tr:first-child > th:first-child {
      width: auto;
    }
    .e2018_details .results_block > table.races > tbody > tr:first-child > th:nth-child(2),
    .e2018_details .results_block > table.races > tbody > tr:first-child > th:nth-child(3) {
      width: 36%;
    }
    .e2018_details .results_block > table.races > tbody > tr > th.percent_in,
    .e2018_details .results_block > table.races > tbody > tr > td.percent_in,
    .e2018_details .results_block > table.races > tbody > tr > th.hold,
    .e2018_details .results_block > table.races > tbody > tr > td.hold {
      width: 1%;
      white-space: nowrap;
      padding-left: 3px;
      padding-right: 3px;
    }
    .e2018_details .results_block > table.races > tbody > tr > td.name {
      white-space: nowrap;
    }
  }
  /* Homepage widget on the smallest phones (320px): drop % in and hold, give the room to the candidates */
  @media only screen and (max-width: 359px) {
    #live_results_alpha_2_mobile .e2018_results_blocks .results_block:nth-child(n) > table.races > tbody > tr > .percent_in,
    #live_results_alpha_2_mobile .e2018_results_blocks .results_block > table.races > tbody > tr > .hold {
      display: none;
    }
    #live_results_alpha_2_mobile .e2018_results_blocks .results_block:nth-child(n) > table.races > tbody > tr:first-child > th:first-child {
      width: 24%;
    }
    #live_results_alpha_2_mobile .e2018_results_blocks .results_block > table.races > tbody > tr:first-child > th:nth-child(2),
    #live_results_alpha_2_mobile .e2018_results_blocks .results_block > table.races > tbody > tr:first-child > th:nth-child(3) {
      width: 38%;
    }
  }

/* ==========================================================================
   2026 CLASSIC REFRESH (Design 1)

   Restyles the homepage widget (alpha-1, alpha-2), every office landing page
   and the state page header on top of the rules above. Same layout, same
   markup; headings stay in Times New Roman, data moves to Arial. Delete this
   section to roll back to the original look.

   Colors: red #d30015 / #a8000f, heading bars #45474d, Dem #1a2fc4,
   GOP #c8001a, Other #7a4fc4, rules #e3e4e8, muted text #6c707a.
   ========================================================================== */

  /* Party colors, everywhere these widgets print them */
  .e2018_top_results .dem,
  .e2018_results_blocks .dem,
  .e2018_details .dem,
  .e2018_state .dem {
    color: #1a2fc4;
  }
  .e2018_top_results .gop,
  .e2018_results_blocks .gop,
  .e2018_details .gop,
  .e2018_state .gop {
    color: #c8001a;
  }

  /* Banner: flatter red, no drop shadow, with the LIVE / updated line */
  .e2018_banner {
    box-sizing: border-box; /* keep width:100% including the side padding */
    height: auto;
    line-height: 1;
    padding: 18px 8px 12px; /* caps sit low in a line-height:1 box, so the top needs a bit more */
    font-size: 34px;
    letter-spacing: 1px;
    border-radius: 2px;
    background: linear-gradient(to bottom, #d30015 0%, #a8000f 100%);
    filter: none;
  }
  .e2018_banner .text span {
    text-shadow: none;
  }
  #live_results_alpha_1_mobile .e2018_banner {
    height: auto;
    padding: 10px 6px 8px;
  }
  .e2018_banner .live_line {
    font: 11.5px Arial, Helvetica, sans-serif;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    color: #ffd9dc;
    margin-top: 6px;
  }
  .e2018_banner .live_line b {
    color: #fff;
    margin-right: 8px;
  }
  .live_line .dot {
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #fff;
    margin-right: 5px;
    vertical-align: 1px;
    animation: e2026_live_pulse 1.6s infinite;
  }
  @keyframes e2026_live_pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.3; }
  }
  @media (prefers-reduced-motion: reduce) {
    .live_line .dot { animation: none; }
  }

  /* Scoreboards (homepage and landing pages) */
  .e2018_top_results {
    margin-top: 6px;
  }
  .e2018_top_results .top_result,
  .e2018_details .top_results .result {
    border-color: #bfc1c7;
  }
  .e2018_top_results .top_result > .title,
  .e2018_details .top_results .result > .title {
    background: #45474d;
    line-height: 1;
    padding: 7px 2px 6px;
  }
  .e2018_top_results .top_result > .title {
    font-size: 18px;
  }
  .e2018_details .top_results .result > .title {
    font-size: 16px;
  }
  .e2018_top_results .top_result > .score,
  .e2018_details .top_results .result > .score {
    min-height: 0;
    padding: 6px 0 4px;
  }
  .e2018_top_results .top_result > .score > .party,
  .e2018_details .top_results .result > .score > .party {
    font-weight: normal;
    font-size: 14px;
  }
  .e2018_top_results .top_result > .score > .party > .score,
  .e2018_details .top_results .result > .score > .party > .score {
    font-size: 22px;
    font-weight: bold;
    line-height: 1.1;
  }
  /* Homepage widget on phones: party names a little larger next to the 22px number. */
  #live_results_alpha_1_mobile .e2018_top_results .top_result > .score > .party {
    font-size: 16px;
  }
  .e2018_top_results .party .score small,
  .e2018_details .party .score small,
  .e2018_map_widget .party .score small {
    font-size: 70%;
    font-weight: normal;
  }

  /* Seat bar: Dem from the left, GOP from the right, uncalled in between, and a
     tick at the control line (51 / 218). */
  .seat_bar {
    position: relative;
    clear: both;
    display: flex;
    justify-content: space-between;
    height: 6px;
    margin: 2px 10px 8px;
    background: #d4d6dc;
  }
  .seat_bar i {
    display: block;
    height: 100%;
  }
  .seat_bar i.dem {
    background: #1a2fc4;
  }
  .seat_bar i.gop {
    background: #c8001a;
  }
  .seat_bar .control {
    position: absolute;
    top: -3px;
    bottom: -3px;
    width: 2px;
    margin-left: -1px;
    background: #111;
  }

  .e2018_details .top_results .result > .states {
    border-top: none;
    background: transparent;
    padding: 0 8px 8px;
  }
    .e2018_details .top_results .result > .states > select {
      font: 12px Arial, Helvetica, sans-serif;
      padding: 3px 4px;
      border: 1px solid #c3c5cb;
      border-radius: 2px;
      background: #fff;
      color: #1b1d22;
      max-width: 100%;
    }

  .e2018_stars {
    color: #777;
    white-space: nowrap;
    overflow: hidden;
    margin: 6px 0 4px;
    padding: 0;
  }

  /* Result blocks: title bar, overview line, footer */
  .e2018_results_blocks .results_block,
  .e2018_details .results_block {
    border-color: #c6c8ce;
  }
  .e2018_results_blocks .results_block > .title,
  .e2018_details .results_block > .title {
    background: #45474d;
    padding: 5px 0 4px;
  }
  .e2018_results_blocks .results_block > .title .text,
  .e2018_details .results_block > .title .text {
    font-size: 21px;
    line-height: 1.1;
    letter-spacing: 1.5px;
  }
  .e2018_results_blocks .results_block > .title .refresh,
  .e2018_details .results_block > .title .refresh {
    background: none;
    padding: 0;
    top: 50%;
    right: 8px;
    transform: translateY(-50%);
    font: 12px Arial, Helvetica, sans-serif;
    color: #e9e9ec;
  }
  .e2018_results_blocks .results_block > .title .refresh:before,
  .e2018_details .results_block > .title .refresh:before {
    content: "\21BB";
    font-size: 14px;
    margin-right: 4px;
  }
  .e2018_results_blocks .results_block > .overview,
  .e2018_details .results_block > .overview {
    font-size: 19px;
    padding: 6px 6px 5px;
    border-bottom: 1px solid #e3e4e8;
  }
  .e2018_results_blocks .results_block > .overview small,
  .e2018_details .results_block > .overview small {
    font-size: 15px;
    font-weight: normal;
  }
  .e2018_results_blocks .results_block > .footer {
    font: 12.5px Arial, Helvetica, sans-serif;
    background: #f5f5f7;
    border-top: 1px solid #e3e4e8;
    padding: 6px;
  }
  .e2018_results_blocks .results_block > .footer a:hover {
    text-decoration: underline;
  }
  /* Main link reads as a call to action ("ALL SENATE RESULTS ›"); House's
     region links stay plain beside it. The | separators are muted. */
  .e2018_results_blocks .results_block > .footer {
    color: #c6c8ce;
  }
  .e2018_results_blocks .results_block > .footer a {
    color: #d30015;
  }
  .e2018_results_blocks .results_block > .footer > a:first-child {
    font: bold 12px Arial, Helvetica, sans-serif;
    letter-spacing: 0.5px;
    text-transform: uppercase;
  }
  .e2018_results_blocks .results_block > .footer > a:first-child:after {
    content: "\00a0\203A";
    font-size: 15px;
    line-height: 0;
  }
  .e2018_results_blocks .nep_attribution,
  .e2018_details .nep_attribution {
    font-size: 10.5px;
    color: #6c707a;
    padding: 3px;
  }

  /* "Powered by [DDHQ logo]" with the disclaimer on hover / tap (RCP_DATA_ATTRIBUTION) */
  .ddhq_source {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 3px;
    cursor: pointer;
    outline: none;
  }
    .ddhq_source .ddhq_label {
      color: #6c707a;
      font: 10px Arial, Helvetica, sans-serif;
      text-decoration: underline dotted;
      text-underline-offset: 2px;
    }
    .ddhq_source img {
      display: block;
      width: 80px;
      height: auto;
    }
    .ddhq_source .ddhq_tip {
      display: none;
      position: absolute;
      bottom: 100%;
      left: 0;
      z-index: 999;
      width: 280px;
      max-width: 80vw;
      margin-bottom: 4px;
      padding: 8px 10px;
      background: #fff;
      border: 1px solid #c6c8ce;
      border-radius: 2px;
      box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
      color: #1b1d22;
      font: 11px/1.4 Arial, Helvetica, sans-serif;
      text-align: left;
      white-space: normal;
      cursor: default;
    }
    .ddhq_source:hover .ddhq_tip,
    .ddhq_source:focus .ddhq_tip {
      display: block;
    }
    /* State map footer: the attribution sits on the right, so open leftward */
    #map-legend .ddhq_source .ddhq_tip {
      left: auto;
      right: 0;
    }

  /* Race tables (homepage and landing pages) */
  .e2018_results_blocks .results_block > table.races,
  .e2018_details .results_block > table.races {
    font: 11px/14px Arial, Helvetica, sans-serif;
    color: #1b1d22;
  }
  .e2018_results_blocks .results_block > table.races > tbody > tr:first-child > th,
  .e2018_details .results_block > table.races > tbody > tr:first-child > th {
    background: #f5f5f7;
    border-top: none;
    border-bottom: 1px solid #d9dbe0;
    color: #4a4d55;
    font-size: 11px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    padding: 2px 0;
  }
  /* Party headings line up with the candidate names below (same left padding). */
  .e2018_results_blocks .results_block > table.races > tbody > tr:first-child > th:nth-child(2),
  .e2018_results_blocks .results_block > table.races > tbody > tr:first-child > th:nth-child(3),
  .e2018_details .results_block > table.races > tbody > tr:first-child > th:nth-child(2),
  .e2018_details .results_block > table.races > tbody > tr:first-child > th:nth-child(3) {
    text-align: left;
    padding-left: 4px;
  }
  .e2018_results_blocks .results_block > table.races > tbody > tr:first-child > th:nth-child(2),
  .e2018_details .results_block > table.races > tbody > tr:first-child > th:nth-child(2) {
    color: #1a2fc4;
  }
  .e2018_results_blocks .results_block > table.races > tbody > tr:first-child > th:nth-child(3),
  .e2018_details .results_block > table.races > tbody > tr:first-child > th:nth-child(3) {
    color: #c8001a;
  }
  /* Homepage tables: narrower state column, wider Dem/Rep columns
     (was 25 / 18 / 18; same 61% total, so Other, % in and hold keep their room).
     Phones have their own widths in the <=767px block. */
  .e2018_results_blocks .results_block > table.races > tbody > tr:first-child > th:first-child {
    width: 20%;
  }
  .e2018_results_blocks .results_block > table.races > tbody > tr:first-child > th:nth-child(2),
  .e2018_results_blocks .results_block > table.races > tbody > tr:first-child > th:nth-child(3) {
    width: 20.5%;
  }
  /* Senate / Governor: state names only, so the column can go narrower and the
     third column ("Sullivan Jr. (R) 11.0") gets the room. House keeps 20% for
     "NY District 17". */
  .e2018_results_blocks .results_block.senate > table.races > tbody > tr:first-child > th:first-child,
  .e2018_results_blocks .results_block.governor > table.races > tbody > tr:first-child > th:first-child {
    width: 18%;
  }
  .e2018_results_blocks .results_block > table.races > tbody > tr > td.other_party {
    white-space: nowrap;
  }
  .e2018_results_blocks .results_block > table.races > tbody > tr > td,
  .e2018_details .results_block > table.races > tbody > tr > td {
    border-bottom: 1px solid #e3e4e8;
    padding: 2px 0;
  }
  .e2018_details .results_block > table.races > tbody > tr > td.state {
    font: bold 14px Arial, Helvetica, sans-serif;
    padding: 10px 8px 4px;
    border-bottom: 1px solid #c6c8ce;
  }

  /* A called race no longer turns the whole row the party color: the state name
     and the check box carry it, and Hold / Pickup says the rest. */
  .e2018_results_blocks .results_block > table.races > tbody > tr.race,
  .e2018_details .results_block > table.races > tbody > tr.race {
    color: #1b1d22;
  }
  .e2018_results_blocks .results_block > table.races > tbody > tr.pickup > td,
  .e2018_details .results_block > table.races > tbody > tr.pickup > td {
    font-weight: normal;
  }

  /* State name, with a check box in place of the old check GIFs: empty while
     uncalled, filled with the winner's color once called. */
  .e2018_results_blocks .results_block > table.races > tbody > tr.race > td.name,
  .e2018_results_blocks .results_block > table.races > tbody > tr.race.winner > td.name,
  .e2018_results_blocks .results_block > table.races > tbody > tr.race.winner.dem > td.name,
  .e2018_results_blocks .results_block > table.races > tbody > tr.race.winner.gop > td.name,
  .e2018_details .results_block > table.races > tbody > tr.race > td.name,
  .e2018_details .results_block > table.races > tbody > tr.race.winner > td.name,
  .e2018_details .results_block > table.races > tbody > tr.race.winner.dem > td.name,
  .e2018_details .results_block > table.races > tbody > tr.race.winner.gop > td.name {
    position: relative;
    padding-left: 19px;
    background: none;
    font-weight: bold;
  }
  .e2018_results_blocks .results_block > table.races > tbody > tr.race > td.name:before,
  .e2018_details .results_block > table.races > tbody > tr.race > td.name:before {
    content: "";
    position: absolute;
    left: 3px;
    top: 50%;
    width: 12px;
    height: 12px;
    margin-top: -6px;
    box-sizing: border-box;
    border: 1px solid #c6c8ce;
    border-radius: 2px;
    color: #fff;
    font: bold 9px/10px Arial, Helvetica, sans-serif;
    text-align: center;
  }
  .e2018_results_blocks .results_block > table.races > tbody > tr.race.winner > td.name:before,
  .e2018_details .results_block > table.races > tbody > tr.race.winner > td.name:before {
    content: "\2713";
    background: #7a4fc4;
    border-color: #7a4fc4;
  }
  .e2018_results_blocks .results_block > table.races > tbody > tr.race.winner.dem > td.name:before,
  .e2018_details .results_block > table.races > tbody > tr.race.winner.dem > td.name:before {
    background: #1a2fc4;
    border-color: #1a2fc4;
  }
  .e2018_results_blocks .results_block > table.races > tbody > tr.race.winner.gop > td.name:before,
  .e2018_details .results_block > table.races > tbody > tr.race.winner.gop > td.name:before {
    background: #c8001a;
    border-color: #c8001a;
  }
  .e2018_results_blocks .results_block > table.races > tbody > tr.race.dem > td.name,
  .e2018_details .results_block > table.races > tbody > tr.race.dem > td.name {
    color: #1a2fc4;
  }
  .e2018_results_blocks .results_block > table.races > tbody > tr.race.gop > td.name,
  .e2018_details .results_block > table.races > tbody > tr.race.gop > td.name {
    color: #c8001a;
  }
  .e2018_results_blocks .results_block > table.races > tbody > tr.race.other > td.name,
  .e2018_details .results_block > table.races > tbody > tr.race.other > td.name {
    color: #7a4fc4;
  }

  /* Candidate cells: name on the left, percentage on the right. The winner's
     cell is shaded once the race is called. */
  .e2018_results_blocks .results_block > table.races > tbody > tr > td.candidate,
  .e2018_details .results_block > table.races > tbody > tr > td.candidate {
    text-align: left;
    padding: 2px 4px;
    white-space: nowrap;
  }
  .e2018_results_blocks .results_block > table.races > tbody > tr > td.candidate > span + span,
  .e2018_details .results_block > table.races > tbody > tr > td.candidate > span + span {
    float: right;
    margin-left: 5px;
    color: #3b3e45;
    font-variant-numeric: tabular-nums;
  }
  .e2018_results_blocks .results_block > table.races > tbody > tr > td.candidate.won,
  .e2018_details .results_block > table.races > tbody > tr > td.candidate.won {
    font-weight: bold;
    background: #efe6f8;
  }
  .e2018_results_blocks .results_block > table.races > tbody > tr > td.candidate.won > span + span,
  .e2018_details .results_block > table.races > tbody > tr > td.candidate.won > span + span {
    color: #111;
  }
  .e2018_results_blocks .results_block > table.races > tbody > tr.dem > td.candidate.won,
  .e2018_details .results_block > table.races > tbody > tr.dem > td.candidate.won {
    background: #e8ebfb;
  }
  .e2018_results_blocks .results_block > table.races > tbody > tr.gop > td.candidate.won,
  .e2018_details .results_block > table.races > tbody > tr.gop > td.candidate.won {
    background: #fbe8ea;
  }

  /* % in, then Hold / Pickup as a tag: outlined for a hold, solid for a pickup */
  .e2018_results_blocks .results_block > table.races > tbody > tr > td.percent_in,
  .e2018_details .results_block > table.races > tbody > tr > td.percent_in {
    width: 38px;
    text-align: right;
    padding-right: 6px;
    color: #6c707a;
    font-variant-numeric: tabular-nums;
  }
  .e2018_results_blocks .results_block > table.races > tbody > tr > td.hold,
  .e2018_details .results_block > table.races > tbody > tr > td.hold {
    width: 84px;
    text-align: left;
  }
  .e2018_results_blocks .results_block > table.races > tbody > tr > td.hold span.full,
  .e2018_details .results_block > table.races > tbody > tr > td.hold span.full {
    display: inline-block;
    border: 1px solid;
    border-radius: 2px;
    padding: 0 4px;
    font-size: 11px;
    line-height: 13px;
    font-weight: bold;
    white-space: nowrap;
  }
  .e2018_results_blocks .results_block > table.races > tbody > tr.dem > td.hold span.full,
  .e2018_details .results_block > table.races > tbody > tr.dem > td.hold span.full {
    color: #1a2fc4;
  }
  .e2018_results_blocks .results_block > table.races > tbody > tr.gop > td.hold span.full,
  .e2018_details .results_block > table.races > tbody > tr.gop > td.hold span.full {
    color: #c8001a;
  }
  .e2018_results_blocks .results_block > table.races > tbody > tr.pickup.dem > td.hold span.full,
  .e2018_details .results_block > table.races > tbody > tr.pickup.dem > td.hold span.full {
    background: #1a2fc4;
    border-color: #1a2fc4;
    color: #fff;
  }
  .e2018_results_blocks .results_block > table.races > tbody > tr.pickup.gop > td.hold span.full,
  .e2018_details .results_block > table.races > tbody > tr.pickup.gop > td.hold span.full {
    background: #c8001a;
    border-color: #c8001a;
    color: #fff;
  }

  /* Landing pages: heading, LIVE line, office nav, map key */
  .e2018_details > .title > h2,
  .e2018_state > .title > h2 {
    font: 900 30px/1.1 "Arial Black", "Arial Bold", Arial, sans-serif;
    font-variant: small-caps;
    text-transform: none;
    letter-spacing: 2px;
    margin: 16px 0 4px;
  }
  .e2018_details > .title > h2 > span.year,
  .e2018_details > .title > h2 > span.first,
  .e2018_state > .title > h2 > span.year,
  .e2018_state > .title > h2 > span.first {
    font-size: inherit;
  }
  .e2018_details > .title > .live_line {
    font: 12.5px Arial, Helvetica, sans-serif;
    color: #6c707a;
    margin: 0 0 12px;
  }
  .e2018_details > .title > .live_line b {
    color: #d30015;
    margin-right: 6px;
  }
  .e2018_details > .title > .live_line .dot {
    background: #d30015;
  }
  .e2018_details > ul.top_nav {
    display: flex;
    border-top: 1px solid #c6c8ce;
    border-bottom: 1px solid #c6c8ce;
    font: 13px Arial, Helvetica, sans-serif;
    margin: 0 0 8px;
    overflow: visible;
  }
    .e2018_details > ul.top_nav > li {
      padding: 8px 4px 7px;
      border-bottom: 3px solid transparent;
      margin-bottom: -1px;
    }
    .e2018_details > ul.top_nav > li.on {
      border-bottom-color: #d30015;
    }
    .e2018_details > ul.top_nav > li.on > .top {
      font-weight: bold;
    }
    .e2018_details > ul.top_nav > li > .top {
      color: #d30015;
    }
    .e2018_details > ul.top_nav > li > .bottom {
      color: #9a9ca3;
    }

  /* Key for the results map. Swatches use the map image's own colors, which
     come from the publisher (map_svg.php) and are not part of this refresh. */
  .e2018_details .results_block > .map .map_key {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 14px;
    font: 11px Arial, Helvetica, sans-serif;
    color: #6c707a;
    padding: 6px 8px 0;
  }
    .e2018_details .results_block > .map .map_key span {
      display: inline-flex;
      align-items: center;
      gap: 4px;
    }
    .e2018_details .results_block > .map .map_key i {
      display: inline-block;
      width: 12px;
      height: 12px;
      border-radius: 2px;
    }
    .e2018_details .results_block > .map .map_key i.dem { background: #3333cc; }
    .e2018_details .results_block > .map .map_key i.gop { background: #cc3333; }
    .e2018_details .results_block > .map .map_key i.uncalled { background: #606060; }
    /* Pickup states are hatched in the winner's color, so the key shows both:
       a blue-hatched and a red-hatched square side by side, 2px apart. */
    .e2018_details .results_block > .map .map_key i.pickup {
      width: 26px;
      border-radius: 0;
      background:
        repeating-linear-gradient(135deg, #3333cc 0 3px, #fff 3px 5px) left / 12px 100% no-repeat,
        repeating-linear-gradient(135deg, #cc3333 0 3px, #fff 3px 5px) right / 12px 100% no-repeat;
    }

  /* State pages: same heading and nav treatment */
  .e2018_state > .title > h2 {
    text-align: center;
  }
  .e2018_state .pages_nav {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    border-top: 1px solid #c6c8ce;
    border-bottom: 1px solid #c6c8ce;
    margin: 14px 0 20px;
    font: 13px Arial, Helvetica, sans-serif;
    text-transform: uppercase;
  }
    .e2018_state .pages_nav > a {
      padding: 8px 14px 7px;
      border-left: none;
      border-bottom: 3px solid transparent;
      margin-bottom: -1px;
      color: #d30015;
    }
    .e2018_state .pages_nav > a.active {
      text-decoration: none;
      font-weight: bold;
      border-bottom-color: #d30015;
    }

  /* Right-rail map slider (beta-1). The map image itself is unchanged. */
  .e2018_map_widget .dem {
    color: #1a2fc4;
  }
  .e2018_map_widget .gop {
    color: #c8001a;
  }
  .e2018_map_widget > .title {
    background: linear-gradient(to bottom, #d30015 0%, #a8000f 100%);
    font: bold 19px/1 "Times New Roman", Times, serif;
    letter-spacing: 1px;
    text-transform: uppercase;
    padding: 10px 6px 9px;
    border-radius: 2px 2px 0 0;
  }
  .e2018_map_widget > ul.nav {
    display: flex;
    padding: 0;
    background: #f5f5f7;
    border: 1px solid #c6c8ce;
    border-top: none;
    font: bold 12.5px Arial, Helvetica, sans-serif;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    overflow: visible;
  }
    .e2018_map_widget > ul.nav > li {
      float: none;
      flex: 1;
      width: auto;
      margin: 0;
      padding: 7px 0 6px;
      background: transparent;
      color: #45474d;
    }
    .e2018_map_widget > ul.nav > li + li {
      border-left: 1px solid #c6c8ce;
    }
    .e2018_map_widget > ul.nav > li:hover {
      color: #1b1d22;
      background: #e3e4e8;
      filter: none;
    }
    .e2018_map_widget > ul.nav > li.active {
      color: #fff;
      background: #45474d;
      filter: none;
    }
  .e2018_map_widget > .pages {
    border: 1px solid #c6c8ce;
    border-top: none;
  }
    .e2018_map_widget > .pages > .page > .score {
      background: #fff;
      border-bottom: 1px solid #e3e4e8;
      padding: 6px 0 5px;
      font: bold 15px Arial, Helvetica, sans-serif;
      white-space: nowrap;
      /* Center the pair as one row instead of two 50% halves: the GOP side
         ("Republicans 202 (-17)") is longer and ran into the right edge. */
      display: flex;
      justify-content: center;
      gap: 12px;
    }
      .e2018_map_widget > .pages > .page > .score > .party,
      .e2018_map_widget > .pages > .page > .score > .party.dem,
      .e2018_map_widget > .pages > .page > .score > .party.gop {
        float: none;
        width: auto;
        padding: 0;
      }
  .e2018_map_widget .nep_attribution {
    font-size: 10.5px;
    color: #6c707a;
    padding: 3px 0;
  }

  /* Smaller screens */
  @media only screen and (max-width: 1023px) {
    .e2018_details .top_results .result:not(:first-child) {
      border-left-color: #bfc1c7;
    }
  }
  @media only screen and (max-width: 619px) {
    .e2018_details .top_results .result:not(:first-child) {
      border-left-color: #bfc1c7;
    }
  }
  @media only screen and (max-width: 589px) {
    .e2018_top_results .top_result:not(:first-child) {
      border-left-color: #bfc1c7;
      border-top: none;
    }
    .e2018_banner {
      font-size: 30px;
    }
  }
  @media only screen and (max-width: 399px) {
    .e2018_banner {
      font-size: 26px;
    }
  }

  /* Phones: keep the classic phone table (Other hidden, AP abbreviations,
     D Hold / R Gain, whole row in the winner's color once called, pickups bold),
     in Arial, with the check box. */
  @media only screen and (max-width: 767px) {
    .e2018_stars {
      letter-spacing: 4px;
    }
    /* Landing pages on phones: race table first, then the stars, then the
       Senate / House / Governors scoreboards. Title and top nav stay on top. */
    .e2018_details {
      display: flex;
      flex-direction: column;
    }
    .e2018_details > .e2018_stars {
      order: 1;
      margin: 8px 0 0;
    }
    .e2018_details > .top_results {
      order: 2;
      margin: 4px 0 0;
    }
    /* Polymarket widget slot (senate / house / governor only), right below the race table. */
    .e2018_details > .pmx_slot:not(:empty) {
      margin-top: 10px;
    }
    .e2018_details > .pmx_slot .pmx {
      margin-bottom: 0;
    }
    .e2018_details > .title > h2,
    .e2018_state > .title > h2 {
      font-size: 22px;
      letter-spacing: 1px;
    }
    .e2018_details > ul.top_nav,
    .e2018_state .pages_nav {
      font-size: 11px;
    }
    .e2018_details .results_block > .map .map_key {
      padding: 6px 4px 0;
    }

    .e2018_results_blocks .results_block > table.races > tbody > tr.race.dem,
    .e2018_details .results_block > table.races > tbody > tr.race.dem {
      color: #1a2fc4;
    }
    .e2018_results_blocks .results_block > table.races > tbody > tr.race.gop,
    .e2018_details .results_block > table.races > tbody > tr.race.gop {
      color: #c8001a;
    }
    .e2018_results_blocks .results_block > table.races > tbody > tr.race.other,
    .e2018_details .results_block > table.races > tbody > tr.race.other {
      color: #7a4fc4;
    }
    .e2018_results_blocks .results_block > table.races > tbody > tr.race.pickup > td,
    .e2018_details .results_block > table.races > tbody > tr.race.pickup > td {
      font-weight: bold;
    }
    .e2018_results_blocks .results_block > table.races > tbody > tr.race > td.name,
    .e2018_results_blocks .results_block > table.races > tbody > tr.race.winner > td.name,
    .e2018_results_blocks .results_block > table.races > tbody > tr.race.winner.dem > td.name,
    .e2018_results_blocks .results_block > table.races > tbody > tr.race.winner.gop > td.name,
    .e2018_details .results_block > table.races > tbody > tr.race > td.name,
    .e2018_details .results_block > table.races > tbody > tr.race.winner > td.name,
    .e2018_details .results_block > table.races > tbody > tr.race.winner.dem > td.name,
    .e2018_details .results_block > table.races > tbody > tr.race.winner.gop > td.name {
      font-weight: normal;
      padding-left: 17px;
    }
    .e2018_results_blocks .results_block > table.races > tbody > tr.race.pickup > td.name,
    .e2018_details .results_block > table.races > tbody > tr.race.pickup > td.name {
      font-weight: bold;
    }
    .e2018_results_blocks .results_block > table.races > tbody > tr.race > td.name:before,
    .e2018_details .results_block > table.races > tbody > tr.race > td.name:before {
      width: 11px;
      height: 11px;
      margin-top: -6px;
      font-size: 8px;
      line-height: 9px;
    }
    .e2018_results_blocks .results_block > table.races > tbody > tr > td.candidate > span + span,
    .e2018_details .results_block > table.races > tbody > tr > td.candidate > span + span {
      float: none;
      margin-left: 0;
      color: inherit;
    }
    .e2018_results_blocks .results_block > table.races > tbody > tr > td.candidate.won,
    .e2018_details .results_block > table.races > tbody > tr > td.candidate.won,
    .e2018_results_blocks .results_block > table.races > tbody > tr.dem > td.candidate.won,
    .e2018_details .results_block > table.races > tbody > tr.dem > td.candidate.won,
    .e2018_results_blocks .results_block > table.races > tbody > tr.gop > td.candidate.won,
    .e2018_details .results_block > table.races > tbody > tr.gop > td.candidate.won {
      background: none;
      font-weight: inherit;
    }
    .e2018_results_blocks .results_block > table.races > tbody > tr > td.candidate.won > span + span,
    .e2018_details .results_block > table.races > tbody > tr > td.candidate.won > span + span {
      color: inherit;
    }
    .e2018_results_blocks .results_block > table.races > tbody > tr > td.percent_in,
    .e2018_details .results_block > table.races > tbody > tr > td.percent_in {
      color: inherit;
      text-align: center;
      padding-right: 0;
    }
    /* Landing tables: give % in and hold back their phone widths (shrink to fit),
       and let long candidate names wrap instead of widening the table. */
    .e2018_details .results_block > table.races > tbody > tr > td.percent_in,
    .e2018_details .results_block > table.races > tbody > tr > td.hold {
      width: 1%;
      padding-left: 3px;
      padding-right: 3px;
    }
    .e2018_details .results_block > table.races > tbody > tr > td.candidate {
      white-space: normal;
    }
    /* Phones show the short "D Hold / R Gain" label only (the tag rule above
       would otherwise bring the full one back). */
    .e2018_details .results_block > table.races > tbody > tr > td.hold span.full {
      display: none;
    }
    /* Homepage phone tables: narrower state column, wider candidate columns
       (was 24 / 27 / 27 / 10 / 12; still adds up to 100%). House keeps a bit
       more for district labels like "NY CD 17". */
    #live_results_alpha_2_mobile .e2018_results_blocks .results_block:nth-child(n) > table.races > tbody > tr:first-child > th:first-child {
      width: 18%;
    }
    #live_results_alpha_2_mobile .e2018_results_blocks .results_block > table.races > tbody > tr:first-child > th:nth-child(2),
    #live_results_alpha_2_mobile .e2018_results_blocks .results_block > table.races > tbody > tr:first-child > th:nth-child(3) {
      width: 30%;
    }
    #live_results_alpha_2_mobile .e2018_results_blocks .results_block.house:nth-child(n) > table.races > tbody > tr:first-child > th:first-child {
      width: 22%;
    }
    #live_results_alpha_2_mobile .e2018_results_blocks .results_block.house > table.races > tbody > tr:first-child > th:nth-child(2),
    #live_results_alpha_2_mobile .e2018_results_blocks .results_block.house > table.races > tbody > tr:first-child > th:nth-child(3) {
      width: 28%;
    }
    /* Governor: short state labels (longest is "Alaska"), so the state column
       can go narrower still and long names like "Lance Bottoms" get the room. */
    #live_results_alpha_2_mobile .e2018_results_blocks .results_block.governor:nth-child(n) > table.races > tbody > tr:first-child > th:first-child {
      width: 15%;
    }
    #live_results_alpha_2_mobile .e2018_results_blocks .results_block.governor > table.races > tbody > tr:first-child > th:nth-child(2),
    #live_results_alpha_2_mobile .e2018_results_blocks .results_block.governor > table.races > tbody > tr:first-child > th:nth-child(3) {
      width: 31.5%;
    }
  }
/* Phones: keep the House footer (main link + four regions) on one line */
@media only screen and (max-width: 767px) {
  .e2018_results_blocks .results_block > .footer {
    font-size: 11.5px;
    padding: 6px 2px;
  }
  .e2018_results_blocks .results_block > .footer > a:first-child {
    font-size: 11px;
    letter-spacing: 0.2px;
  }
}
