@charset "UTF-8";
.no-precincts-reporting .when-precincts-reporting, .precincts-reporting .when-no-precincts-reporting { display: none; }

@font-face { font-family: "Dots"; src: url("data:application/font-woff;base64,d09GRgABAAAAAASUAAsAAAAABEgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAABCAAAAGAAAABgG+67M2NtYXAAAAFoAAAAVAAAAFTgM0DLZ2FzcAAAAbwAAAAIAAAACAAAABBnbHlmAAABxAAAAIwAAACMU58WQ2hlYWQAAAJQAAAANgAAADYL84jJaGhlYQAAAogAAAAkAAAAJA8BCAZobXR4AAACrAAAABQAAAAUGAABAGxvY2EAAALAAAAADAAAAAwAKABabWF4cAAAAswAAAAgAAAAIAAHABZuYW1lAAAC7AAAAYYAAAGGmUoJ+3Bvc3QAAAR0AAAAIAAAACAAAwAAAAMIAAGQAAUAAAUzBZkAAAEeBTMFmQAAA9cAZgISAAAAAAAAAAAAAAAAgAAAAQAAAAAAAAAAAAAAAAAAAAAAQAAAICIIAAAAAAAIAAAAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADgAAAAKAAgAAgACAAEAICAi//3//wAAAAAAICAi//3//wAB/+Pf4gADAAEAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQEAAQAHAAcAABMAAAEUEhYEMzIkNhI1NAImJCMiBAYCAQB50AEYn58BGNB5edD+6J+f/ujQeQQAn/7o0Hl50AEYn58BGNB5edD+6AAAAAABAAAAAQAABdLB8V8PPPUACwgAAAAAANLqnmYAAAAA0uqeZgAAAAAHAAcAAAAACAACAAAAAAAAAAEAAAgAAAAAAAgAAAAAAAcAAAEAAAAAAAAAAAAAAAAAAAAFCAAAAAAAAAAAAAAACAAAAAgAAQAAAAAAAAoAFAAeAEYAAQAAAAUAFAABAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAA4ArgABAAAAAAABAAcAAAABAAAAAAACAAcAYAABAAAAAAADAAcANgABAAAAAAAEAAcAdQABAAAAAAAFAAsAFQABAAAAAAAGAAcASwABAAAAAAAKABoAigADAAEECQABAA4ABwADAAEECQACAA4AZwADAAEECQADAA4APQADAAEECQAEAA4AfAADAAEECQAFABYAIAADAAEECQAGAA4AUgADAAEECQAKADQApGljb21vb24AaQBjAG8AbQBvAG8AblZlcnNpb24gMS4wAFYAZQByAHMAaQBvAG4AIAAxAC4AMGljb21vb24AaQBjAG8AbQBvAG8Abmljb21vb24AaQBjAG8AbQBvAG8AblJlZ3VsYXIAUgBlAGcAdQBsAGEAcmljb21vb24AaQBjAG8AbQBvAG8AbkZvbnQgZ2VuZXJhdGVkIGJ5IEljb01vb24uAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="); }

body { position: relative; margin: 0; font-family: Source Sans Pro, Arial, Helvetica, sans-serif; background-color: #fff; }

a:link { color: #0e61e5; }

.branding { width: 282px; margin: auto; padding: 10px; }

@media (min-width: 661px) { .branding { width: 420px; } }

.branding a { text-decoration: none; }

.branding .logo { height: 15px; border-right: 1px solid #ccc; padding: 8px 14px 8px 0; }

@media (max-width: 660px) { .branding .logo__topbar--desktop { display: none; } }

@media (min-width: 661px) { .branding .logo__topbar--mobile { display: none; } }

.branding .election-banner { font-size: 23px; position: absolute; top: 13px; padding-left: 14px; text-transform: uppercase; font-family: 'ProximaNovaCond-Extrabld'; }

.branding .red { color: #bc5c5c; }

.branding .blue { color: #5c6b95; }

#main { margin: 0 auto; padding: 0; max-width: 960px; }

@media (min-width: 401px) { #main { padding: 0 20px; } }

h1, h2, h3 { font-family: ProximaNovaCond-Extrabld, Arial, Helvetica, sans-serif; text-align: center; }

h1 { font-size: 2.8em; }

h2 { font-size: 1.8em; padding-top: 30px; }

h2 a { text-decoration: none; color: #000; }

h2 a:hover { border-bottom: 1px solid #ababab; }

.dek { color: #999; margin-top: -20px; text-align: center; font-size: 1.5em; }

.footnotes { color: #666; font-size: .75rem; line-height: .85rem; }

.footnotes p { margin: .5rem 0; }

.intro-copy { font-size: 1.2em; }

.intro-date { text-align: center; margin: 3px; text-transform: uppercase; font-size: 0.8em; color: #666; }

footer { width: 100%; padding: 15px 0; text-align: center; color: #888; }

footer p { margin: 0; font-size: 12px; line-height: 20px; }

footer a, footer a:visited, footer a.active { color: #666; text-decoration: none; }

footer a:hover, footer a:visited:hover, footer a.active:hover { text-decoration: underline; }

.dot-group { font-family: Dots; display: inline-block; vertical-align: top; word-wrap: break-word; word-break: break-all; white-space: normal; text-align: left; transform: rotate(-90deg) scaleX(-1) scale(0.5); margin: -12.5px; font-size: 10px; line-height: 10px; width: 50px; height: 50px; border: 2px solid transparent; }

.dot-subgroup { display: inline; }

p.include-unpledged-delegates { color: #666; margin: 0; font-size: .8rem; line-height: 1.5rem; text-align: center; }

p.include-unpledged-delegates input { vertical-align: -2px; }

p.include-unpledged-delegates label { cursor: pointer; }

.with-share-link { position: relative; }

.with-share-link a.share-link { display: inline-block; position: absolute; margin-left: -1.5rem; width: 1.5rem; height: 1.5rem; background: url('data:image/svg+xml,<svg version="1.1" width="1rem" height="1rem" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z" fill="%230e61e5" /></svg>') no-repeat bottom center; background-size: 1rem 1rem; text-decoration: none; opacity: 0; }

.with-share-link:hover a.share-link { opacity: 1; }

body.all-primaries h1, body.all-primaries h2, body.all-primaries h3, body.all-primaries p.dek, body.all-primaries p.intro-date, body.all-primaries p.pollster-note, body.all-primaries .footer p { padding: 0 10px; }

body.all-primaries h2 { font-size: 2.2em; margin: 3em auto 0; }

body.all-primaries .teaser { display: block; width: 100%; padding: 10px 0; margin: 40px 0; box-sizing: border-box; position: relative; text-decoration: none; color: #000; }

body.all-primaries .teaser * { box-sizing: border-box; }

body.all-primaries .teaser span { padding: 10px; }

body.all-primaries .teaser .label { background: #666; color: #fff; text-transform: uppercase; font-weight: bold; }

body.all-primaries .teaser .detail { font-style: italic; }

body.all-primaries .teaser .callout { font-weight: bold; }

@media (max-width: 660px) { body.all-primaries .teaser .label { display: block; text-align: center; width: 100%; }
  body.all-primaries .teaser .teaser-inner { display: block; width: 100%; background: #f8f8f8; overflow: auto; padding: 0; }
  body.all-primaries .teaser .detail { float: left; }
  body.all-primaries .teaser .callout { float: right; } }

@media (min-width: 661px) { body.all-primaries .teaser { background: #f8f8f8; }
  body.all-primaries .teaser .callout { position: absolute; right: 0; top: 0; } }

body.all-primaries .teaser.present .label { background: #e82c0c; }

.primaries-about-delegates #main { max-width: 700px; margin: auto; }

.primaries-about-delegates h3 { margin-top: 60px; font-size: 1.6em; }

.primaries-about-delegates article p { font-size: 1.1em; line-height: 1.5em; }

.horse-races { overflow: hidden; }

.horse-races h2 { font-size: 2.4 em; }

.horse-races p.description { text-align: center; line-height: 1.5rem; }

.horse-races p.description + p { margin-bottom: 2rem; }

.horse-races h3 { margin: 0; margin-bottom: .75rem; height: 3rem; }

.horse-races h3 span { display: inline-block; height: 2rem; padding: .75rem; line-height: 2rem; font-size: 1.6rem; }

.horse-races button { display: inline-block; -webkit-appearance: none; -moz-appearance: none; appearance: none; box-sizing: border-box; height: 3rem; cursor: pointer; width: 7.5rem; background: #d7d7d7; box-shadow: inset 0 -2px 3px #b7b7b7; border: none; outline: none; vertical-align: 1px; line-height: 2rem; padding: .5rem 0; font-family: ProximaNovaCond-Extrabld, Arial, Helvetica, sans-serif; font-size: 1.25rem; font-weight: bold; text-transform: uppercase; text-align: center; }

.horse-races button:hover { background: #dfdfdf; box-shadow: inset 0 -2px 3px #bfbfbf; }

.horse-races button::before, .horse-races button::after { display: inline-block; height: 2rem; vertical-align: middle; }

.horse-races button::before { padding-left: .5rem; }

.horse-races button::after { content: ' '; width: 2rem; background-repeat: no-repeat; background-size: 2rem 2rem; }

.horse-races button.play::before { content: 'Play'; }

.horse-races button.play::after { background-image: url('data:image/svg+xml;utf8,<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 4 4"><path d="M1,1L3,2L1,3Z" fill="black"/></svg>'); }

.horse-races button.pause::before { content: 'Pause'; }

.horse-races button.pause::after { background-image: url('data:image/svg+xml;utf8,<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 5 5"><path d="M1,1h1v3h-1ZM3,1h1v3h-1Z" fill="black"/></svg>'); }

.horse-races span.delegates-legend, .horse-races span.finish-line-legend { background: #f0f0f0; padding: .25rem; }

.horse-races span.delegates-legend::before, .horse-races span.finish-line-legend::before { margin-right: .25rem; }

.horse-races span.delegates-legend::before { content: '•'; font-family: 'Dots'; font-size: 10px; color: #666; }

.horse-races span.finish-line-legend::before { display: inline-block; content: ''; width: .75rem; height: 1rem; background: url('data:image/svg+xml,<svg verison="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2 2" width=".5rem" height=".5rem"><rect x="0" y="0" width="2" height="2" fill="white"/><path d="M0,0H1V1H0ZM1,1H2V2H1Z" fill="black"/></svg>') repeat; position: relative; top: .2rem; }

div.horse-race { position: relative; margin-bottom: 5rem; }

div.horse-race.loading ol.race-days, div.horse-race.loading .race-day-selector { opacity: 0 !important; }

div.horse-race.loading .race-day-selector .left, div.horse-race.loading .race-day-selector .right { transition: none; }

div.horse-race .n-delegates-needed { text-align: right; line-height: 1rem; font-size: .8rem; }

div.horse-race ol.candidate-horses { margin: 0; padding: 6rem .75rem 0 0; list-style: none; background: #DCF4FA; position: relative; }

div.horse-race ol.candidate-horses::after { content: ' '; position: absolute; right: 0; top: 0; width: .75rem; height: 100%; background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 2 2" width="8px" height="8px"><path d="M0,0h1v1h-1ZM1,1h1v1h-1Z" fill="black"/><path d="M0,1h1v1h-1ZM1,0h1v1h-1Z" fill="white"/></svg>') repeat; }

div.horse-race li.candidate-horse .last-name { position: absolute; left: -7.85rem; width: 7.35rem; text-align: right; font-weight: bold; color: white; z-index: 1; font-size: .8rem; line-height: 1.1rem; }

@media (max-width: 660px) { div.horse-race li.candidate-horse .last-name { left: -5.95rem; width: 5.45rem; } }

div.horse-race li.candidate-horse.dropped-out .marker { opacity: .5; }

div.horse-race li.candidate-horse, div.horse-race li.extra-layer { position: relative; line-height: 1.5rem; height: 1.5rem; margin-left: 7.6rem; z-index: 0; }

@media (max-width: 660px) { div.horse-race li.candidate-horse, div.horse-race li.extra-layer { margin-left: 5.7rem; } }

div.horse-race li.candidate-horse .background, div.horse-race li.extra-layer .background { position: absolute; top: -1rem; left: 0; right: 0; height: 2.5rem; margin-left: -7.6rem; background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 10 5"><defs><filter x="-1" y="-1" width="12" height="7" id="blur"><feGaussianBlur stdDeviation="0.45" result="blur"/></filter></defs><path d="M0,1C3,1 2,2 5,2C8,2 7,1 10,1L11,1L11,6L-1,6L-1,1Z" fill="black" filter="url(%23blur)"/><path d="M0,1C3,1 2,2 5,2C8,2 7,1 10,1L11,1L11,6L-1,6L-1,1Z" stroke="white" stroke-width="0.4" opacity="0.75"/></svg>') repeat-x left top; }

@media (max-width: 660px) { div.horse-race li.candidate-horse .background, div.horse-race li.extra-layer .background { margin-left: -5.7rem; } }

div.horse-race li.candidate-horse .background::after, div.horse-race li.extra-layer .background::after { content: ' '; display: block; position: relative; background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 10 5"><path d="M0,1C3,1 2,2 5,2C8,2 7,1 10,1L11,1L11,6L-1,6L-1,1Z" fill="%239DCF89"/></svg>') repeat-x left top; height: 100%; }

div.horse-race li.candidate-horse .background .start-line, div.horse-race li.extra-layer .background .start-line { position: absolute; box-sizing: border-box; top: 0; left: 0; width: 7.6rem; height: 2.5rem; z-index: 1; background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 10 5"><path d="M0,1C3,1 2,2 5,2C8,2 7,1 10,1L11,1L11,6L-1,6L-1,1Z" fill="rgba(205, 174, 137, 1)"/></svg>') repeat-x left top; }

@media (max-width: 660px) { div.horse-race li.candidate-horse .background .start-line, div.horse-race li.extra-layer .background .start-line { width: 5.7rem; } }

div.horse-race li.candidate-horse .background .start-line::after, div.horse-race li.extra-layer .background .start-line::after { content: ''; position: absolute; right: 0; width: 2px; top: 0; height: 2.5rem; background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 10 5"><path d="M0,1C3,1 2,2 5,2C8,2 7,1 10,1L11,1L11,6L-1,6L-1,1Z" fill="white"/></svg>') repeat-x; background-size: auto 2.5rem; background-position: left -7.6rem top; z-index: 1; }

@media (max-width: 660px) { div.horse-race li.candidate-horse .background .start-line::after, div.horse-race li.extra-layer .background .start-line::after { background-position: left -5.7rem top; } }

div.horse-race ul.bars { margin: 0; padding: 0; list-style: none; margin-left: -7.6rem; padding-left: 7.6rem; top: -1rem; white-space: nowrap; overflow: hidden; position: relative; opacity: 1; transition: opacity .15s linear; }

@media (max-width: 660px) { div.horse-race ul.bars { margin-left: -5.7rem; padding-left: 5.7rem; } }

div.horse-race ul.bars li { margin: 0; padding: 0; display: inline-block; height: 2.5rem; opacity: 0; background: url('data:image/svg+xml,<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 5"><defs><pattern id="p" width="5" height="5" patternUnits="userSpaceOnUse"><path d="M-1,1L1,-1M-1,6L6,-1M4,6L6,4" stroke="rgba(0,0,0,.5)" stroke-width="5"/></pattern></defs><path d="M0,1C3,1 2,2 5,2C8,2 7,1 10,1L11,1L11,6L-1,6L-1,1Z" fill="url(%23p)"/></svg>') repeat-x left top; background-size: auto 2.5rem; }

div.horse-race ul.bars li.current-step { opacity: 1; }

div.horse-race .bar-label-outer { margin-left: -7.6rem; height: 0; position: relative; }

@media (max-width: 660px) { div.horse-race .bar-label-outer { margin-left: -5.7rem; } }

div.horse-race .bar-label { position: absolute; font-size: .8rem; top: -.25rem; opacity: 1; transition: opacity .15s linear; z-index: 1; }

div.horse-race .bar-label.does-not-fit { opacity: 0; }

div.horse-race .bar-label.anchor-left { padding-left: .6rem; }

div.horse-race .bar-label.anchor-left::before { content: ' '; position: absolute; top: 0; left: -.4rem; width: 1rem; height: 1rem; background: url('data:image/svg+xml,<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 5 5"><path d="M4,4C2,4 2,4 2,1L1,2M2,1L3,2" fill="none" stroke="black" stroke-width="0.4"/></svg>'); }

div.horse-race .bar-label.anchor-right { text-align: right; padding-right: .6rem; }

div.horse-race .bar-label.anchor-right::before { content: ' '; position: absolute; top: 0; right: -.4rem; width: 1rem; height: 1rem; background: url('data:image/svg+xml,<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 5 5"><path d="M1,4C3,4 3,4 3,1L4,2M3,1L2,2" fill="none" stroke="black" stroke-width="0.4"/></svg>'); }

div.horse-race .marker { position: absolute; z-index: 1; left: 0; right: 0; height: 0; transition: left .1s linear, transform .15s linear; }

div.horse-race .marker img { display: block; position: absolute; bottom: -2rem; height: 6rem; width: 8rem; margin-left: -7.6rem; -webkit-transform-origin: bottom 10%; transform-origin: bottom 10%; }

@media (max-width: 660px) { div.horse-race .marker img { width: 6rem; height: 4.5rem; margin-left: -5.7rem; } }

div.horse-race .marker.adding img { -moz-animation: .5s linear 0s infinite horse-move; -webkit-animation: .5s linear 0s infinite horse-move; animation: .5s linear 0s infinite horse-move; transition: none; }

div.horse-race .speech-bubble-outer { display: inline-block; position: absolute; opacity: 0; height: 0; margin-top: -3rem; max-width: calc(100% + 8rem * 19 / 20 - 3px); min-width: 7.6rem; left: -7.6rem; top: -4rem; }

@media (max-width: 660px) { div.horse-race .speech-bubble-outer { min-width: 5.7rem; max-width: calc(100% + 6rem * 19 / 20 - 3px); left: -5.7rem; top: -3rem; } }

div.horse-race .speech-bubble { display: inline-block; margin: 0 auto; float: right; min-width: 3rem; padding: .75rem; line-height: 1rem; text-align: center; background: white; border: 2px solid #666; border-radius: 10px; box-shadow: 0 0 10px #ccc; white-space: nowrap; }

div.horse-race .speech-bubble-triangle::before, div.horse-race .speech-bubble-triangle::after { content: ' '; position: absolute; top: 2.5rem; margin-top: 2px; left: 5.6rem; bottom: -13px; width: 0; height: 0; border: 6px solid transparent; }

@media (max-width: 660px) { div.horse-race .speech-bubble-triangle::before, div.horse-race .speech-bubble-triangle::after { left: 4.2rem; } }

div.horse-race .speech-bubble-triangle::before { border-color: #666 transparent transparent #666; }

div.horse-race .speech-bubble-triangle::after { bottom: -8px; border-width: 4px; margin-left: 2px; border-color: white transparent transparent white; }

div.horse-race .marker:hover .speech-bubble-outer, div.horse-race .marker.force-speech-bubble .speech-bubble-outer { opacity: 1; }

div.horse-race ol.candidate-targets { display: -webkit-flex; display: flex; -webkit-justify-content: space-around; justify-content: space-around; padding: 0; margin: 0; list-style: none; -webkit-perspective: 500px; perspective: 500px; }

div.horse-race li.candidate-target { position: relative; text-align: center; width: 5rem; height: 6.5rem; }

div.horse-race li.candidate-target::before { content: ' '; position: absolute; left: 0; top: 0; bottom: 0; right: 0; z-index: -1; background: #ffc; opacity: 0; }

div.horse-race li.candidate-target.adding::before { opacity: 1; }

div.horse-race li.candidate-target .last-name { font-weight: bold; height: 1rem; line-height: 1rem; }

div.horse-race li.candidate-target img { display: block; width: 3rem; height: 4rem; margin: 0 auto; }

div.horse-race li.candidate-target .n-delegates { text-align: center; height: 1rem; line-height: 1rem; padding-right: 0; transition: padding-right .15s ease-in-out; }

div.horse-race li.candidate-target .target { position: absolute; width: 1rem; height: 1rem; right: .5rem; bottom: .5rem; border-radius: .5rem; background: #bbb; box-sizing: border-box; border: 2px solid white; z-index: 0; transition: opacity .15s ease-in-out; opacity: 0; }

div.horse-race li.candidate-target .target::before, div.horse-race li.candidate-target .target::after { position: absolute; z-index: -1; top: -2px; left: -2px; right: -2px; bottom: -2px; border-radius: .5rem; }

div.horse-race li.candidate-target .target::before { content: ''; box-shadow: 1px 1px 4px black; }

div.horse-race li.candidate-target .target::after { content: ''; box-shadow: 2px 2px 5px black; transition: opacity 0.15s cubic-bezier(0, 1, 1, 1); }

div.horse-race li.candidate-target.adding .target { background: #d0d459; border-color: yellow; }

div.horse-race li.candidate-target.adding .target::after { opacity: 0; }

div.horse-race.animating .bar-label { opacity: 0; }

div.horse-race.animating .bars { opacity: 0; }

div.horse-race.animating li.candidate-target .n-delegates { padding-right: 2rem; }

div.horse-race.animating li.candidate-target .target { opacity: 1; }

div.horse-race canvas { position: absolute; pointer-events: none; left: 0; bottom: 0; z-index: 1; }

div.horse-race .json-data, div.horse-race .json-state-paths { display: none; }

div.horse-race div.race-days { position: relative; height: 5rem; }

div.horse-race ol.race-days, div.horse-race ol.races { margin: 0; padding: 0; list-style: none; white-space: nowrap; }

div.horse-race ol.race-days { overflow-x: hidden; height: 5rem; padding-left: 50%; padding-right: 50%; }

div.horse-race .bar-label { position: relative; }

div.horse-race li.race-day, div.horse-race li.unpledged-delegates { display: inline-block; box-sizing: border-box; padding: 0 .5rem; text-align: center; border-right: 1px solid #ccc; height: 3.5rem; vertical-align: top; cursor: pointer; position: relative; }

div.horse-race li.race-day:last-child, div.horse-race li.unpledged-delegates:last-child { border-right: none; }

div.horse-race li.race-day.unpledged-delegates, div.horse-race li.unpledged-delegates.unpledged-delegates { padding-top: .5rem; }

div.horse-race li.race-day.has-no-delegates, div.horse-race li.unpledged-delegates.has-no-delegates { opacity: .5; }

div.horse-race li.race-day.active, div.horse-race li.race-day.has-no-delegates, div.horse-race li.unpledged-delegates.active, div.horse-race li.unpledged-delegates.has-no-delegates { cursor: default; }

div.horse-race li.race-day a, div.horse-race li.unpledged-delegates a { opacity: 0; transition: opacity .3s linear; position: absolute; line-height: 1rem; bottom: -1.2rem; font-size: .8rem; left: -2rem; right: -2rem; height: 1rem; text-align: center; cursor: default; pointer-events: none; }

div.horse-race li.race-day h4, div.horse-race li.unpledged-delegates h4 { font: inherit; font-weight: bold; margin: 0; line-height: 1.4rem; }

div.horse-race li.race-day:hover:not(.active):not(.has-no-delegates), div.horse-race li.unpledged-delegates:hover:not(.active):not(.has-no-delegates) { text-decoration: underline; }

div.horse-race[data-party-id=Dem] li.race-day.before-active h4, div.horse-race[data-party-id=Dem] li.after-active.has-delegates h4, div.horse-race[data-party-id=Dem] li.after-active.unpledged-delegates h4 { color: #5c6b95; }

div.horse-race[data-party-id=GOP] li.race-day.before-active h4, div.horse-race[data-party-id=GOP] li.after-active.has-delegates h4, div.horse-race[data-party-id=GOP] li.after-active.unpledged-delegates h4 { color: #bc5c5c; }

div.horse-race li.race-day.before-active:hover h4, div.horse-race li.after-active.has-delegates:hover h4, div.horse-race li.after-active.unpledged-delegates:hover h4 { text-decoration: underline; }

div.horse-race:not(.animating) ol.race-days > li.active a { opacity: 1; cursor: pointer; pointer-events: auto; }

div.horse-race li.race { display: inline-block; padding: .25rem 0; position: relative; width: 1.6rem; height: 1.6rem; }

div.horse-race li.race .state-code { position: absolute; line-height: 1.6rem; width: 1.6rem; font-weight: bold; }

div.horse-race .race-day-selector { z-index: 2; pointer-events: none; position: absolute; bottom: 1.5rem; height: 3.5rem; left: 0; right: 0; }

div.horse-race .race-day-selector .left, div.horse-race .race-day-selector .right { position: absolute; top: 0; bottom: 0; transition: width .15s ease-in-out; }

div.horse-race .race-day-selector .left { left: 0; width: 100px; border-right: 1px solid #333; background: rgba(255, 255, 255, 0.7); }

div.horse-race .race-day-selector .right { right: 0; width: 100px; border-left: 1px solid #333; background: linear-gradient(to right, rgba(255, 255, 255, 0.7), white); }

div.horse-race .map svg { height: 1.6rem; width: 1.6rem; }

div.horse-race .map path { fill: #ddd; }

div.horse-race .map text { display: none; }

@-moz-keyframes horse-move { 25% { transform: rotate(-4deg); }
  50% { transform: rotate(2deg); }
  75% { transform: rotate(-1deg); }
  60% { transform: rotate(0); } }

@-webkit-keyframes horse-move { 25% { transform: rotate(-4deg); }
  50% { transform: rotate(2deg); }
  75% { transform: rotate(-1deg); }
  60% { transform: rotate(0); } }

@keyframes horse-move { 25% { transform: rotate(-4deg); }
  50% { transform: rotate(2deg); }
  75% { transform: rotate(-1deg); }
  60% { transform: rotate(0); } }

.social-buttons { margin: 30px 0; text-align: center; }

.social-buttons a { text-decoration: none; }

.social-buttons .btn-social { display: inline-block; width: 11.5rem; font-size: .85rem; color: #fff; cursor: pointer; text-align: center; padding: .5rem; margin: .25rem; box-sizing: border-box; text-transform: none; }

.social-buttons .btn-social::before { display: inline-block; content: '​'; height: 1.05rem; width: 1.05rem; margin-right: .2rem; vertical-align: top; background-size: contain; background-repeat: no-repeat; background-position: center; }

.social-buttons .btn-twitter { background: #55acee; border: 1px solid #2795e9; box-shadow: inset 0px -2px 3px #2795e9; }

.social-buttons .btn-twitter:hover { background: #6cb7f0; box-shadow: inset 0px -2px 3px #3ea1ec; }

.social-buttons .btn-twitter::before { background-image: url('data:image/svg+xml;utf8,<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24.3 19.719"><path fill="%23FFFFFF" d="M24.243,2.349c-0.892,0.396-1.851,0.663-2.856,0.783c1.026-0.616,1.815-1.59,2.187-2.751c-0.961,0.57-2.025,0.984-3.158,1.207c-0.907-0.967-2.199-1.57-3.63-1.57c-2.747,0-4.974,2.226-4.974,4.973c0,0.39,0.044,0.77,0.129,1.133C7.807,5.917,4.142,3.937,1.689,0.927c-0.428,0.735-0.674,1.588-0.674,2.5c0,1.726,0.878,3.248,2.213,4.141c-0.815-0.026-1.582-0.25-2.253-0.622c0,0.021,0,0.042,0,0.062c0,2.41,1.714,4.42,3.989,4.878C4.546,12,4.107,12.061,3.653,12.061c-0.32,0-0.632-0.031-0.936-0.09c0.633,1.977,2.47,3.414,4.646,3.454c-1.702,1.334-3.847,2.129-6.177,2.129c-0.401,0-0.797-0.023-1.187-0.069c2.201,1.411,4.815,2.234,7.625,2.234c9.148,0,14.151-7.578,14.151-14.151c0-0.216-0.005-0.431-0.015-0.644C22.733,4.222,23.577,3.346,24.243,2.349z"/></svg>'); }

.social-buttons .btn-facebook { background: #3b5998; border: 1px solid #2d4373; box-shadow: inset 0px -2px 3px #2d4373; }

.social-buttons .btn-facebook:hover { background: #4264aa; box-shadow: inset 0px -2px 3px #344e86; }

.social-buttons .btn-facebook::before { background: url('data:image/svg+xml;utf8,<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128"><path fill="%23FFFFFF" d="M112,0H16C7.2,0,0,7.2,0,16v96c0,8.8,7.2,16,16,16h52.877V78.188h-17.78V60.425h17.784V44.029c0-16.537,9.764-26.279,24.514-26.279c7.068,0,12.834,0.756,14.605,0.991v18.573l-11.874-0.005c-8.022,0-9.522,3.979-9.522,9.572v13.544h20.557l-2.904,17.763H86.604V128H112c8.8,0,16-7.2,16-16V16C128,7.2,120.8,0,112,0z"/></svg>'); }

.sparkline { display: inline-block; }

.sparkline svg { display: block; width: 3em; height: 1em; background: transparent; }

.sparkline path { stroke: black; stroke-width: 3; fill: none; }

.state-race-days h3 { font-size: 1.6em; margin: 3rem auto 0; }

.state-race-days a { color: #000; }

@media (max-width: 660px) { .state-race-days table { font-size: .85rem; } }

@media (max-width: 700px) { .state-race-days .state-name { display: none; } }

@media (min-width: 700px) { .state-race-days .state-abbreviation { display: none; } }

.state-race-days th { text-align: left; padding: .3rem .5rem; }

.state-race-days tr:first-child .date-past { border-top: 4px solid #fff; }

.state-race-days td { border-top: 1px solid #eee; vertical-align: middle; padding: .3rem .5rem; }

.state-race-days td.state { font-weight: bold; padding-right: .3rem; }

@media (max-width: 659px) { .state-race-days td.state { width: 5rem; } }

@media (min-width: 660px) { .state-race-days td.state { width: 12.5rem; } }

.state-race-days td.party { text-align: center; }

.state-race-days td.date-past { border-top: 15px solid #fff; background: #f8f8f8; white-space: nowrap; text-align: center; padding: 0; }

.state-race-days td.date-future { white-space: nowrap; }

.state-race-days td.repeated * { visibility: hidden; }

.state-race-days td.trump span[data-candidate-slug=trump] { color: #B23151; }

.state-race-days .winner.trump .inner, .state-race-days .winner-delegates.trump .inner { background: #B23151; }

.state-race-days td.cruz span[data-candidate-slug=cruz] { color: #6844AD; }

.state-race-days .winner.cruz .inner, .state-race-days .winner-delegates.cruz .inner { background: #6844AD; }

.state-race-days td.rubio span[data-candidate-slug=rubio] { color: #d98628; }

.state-race-days .winner.rubio .inner, .state-race-days .winner-delegates.rubio .inner { background: #d98628; }

.state-race-days td.kasich span[data-candidate-slug=kasich] { color: #fa7060; }

.state-race-days .winner.kasich .inner, .state-race-days .winner-delegates.kasich .inner { background: #fa7060; }

.state-race-days td.carson span[data-candidate-slug=carson] { color: #a85d59; }

.state-race-days .winner.carson .inner, .state-race-days .winner-delegates.carson .inner { background: #a85d59; }

.state-race-days td.clinton span[data-candidate-slug=clinton] { color: #a6c281; }

.state-race-days .winner.clinton .inner, .state-race-days .winner-delegates.clinton .inner { background: #a6c281; }

.state-race-days td.sanders span[data-candidate-slug=sanders] { color: #84c9ec; }

.state-race-days .winner.sanders .inner, .state-race-days .winner-delegates.sanders .inner { background: #84c9ec; }

.state-race-days .winner { width: 3rem; }

.state-race-days .winner, .state-race-days .winner-delegates { padding: 0; color: #fff; }

.state-race-days .winner span, .state-race-days .winner-delegates span { padding: .15rem .3rem; width: 100%; display: inline-block; }

.state-race-days .dot-groups-past span.number { display: inline-block; width: 1.8em; vertical-align: middle; padding: .3rem 0; }

.state-race-days .dot-groups-past span:not(.number) { color: #ddd; }

.state-race-days td.trump span[data-candidate-slug=trump] { color: #B23151; }

.state-race-days td.cruz span[data-candidate-slug=cruz] { color: #6844AD; }

.state-race-days td.rubio span[data-candidate-slug=rubio] { color: #d98628; }

.state-race-days td.kasich span[data-candidate-slug=kasich] { color: #fa7060; }

.state-race-days td.carson span[data-candidate-slug=carson] { color: #a85d59; }

.state-race-days td.clinton span[data-candidate-slug=clinton] { color: #a6c281; }

.state-race-days td.sanders span[data-candidate-slug=sanders] { color: #84c9ec; }

.state-race-days .disabled-button { visibility: hidden; }

.state-race-days tr.key-repeated td { border-top-color: transparent; }

.state-race-days .key-repeated .date { visibility: hidden; }

.state-race-days tr[data-href] { cursor: pointer; }

.state-race-days table { border-collapse: collapse; width: 100%; max-width: 650px; margin: 2em auto 4em; line-height: 1.25rem; }

.state-race-days .n-delegates-int { -webkit-flex: 0 0 auto; flex: 0 0 auto; width: 1.6rem; padding-right: .25rem; text-align: right; }

.state-race-days .n-delegates-dots { max-width: 10rem; padding: .25rem 0; }

.state-race-days .dot-groups-future.Dem { color: #5c6b95; }

.state-race-days .dot-groups-future.GOP { color: #bc5c5c; }

@keyframes spin { 0% { transform: translate3d(0, 0, 0) rotate(-0.001deg); }
  100% { transform: translate3d(0, 0, 0) rotate(360.001deg); } }

body.race-day h1, body.race-day h2, body.race-day h3, body.race-day p.intro-copy, body.race-day p.text, body.race-day .metadata p, body.race-day .footnotes p { padding-left: 10px; padding-right: 10px; }

body.race-day .metadata { margin: 20px 0 0 0; }

body.race-day .metadata p { margin: 4px 0; }

body.race-day ul { list-style: none; margin: 0; padding: 0; }

body.race-day ul.party-state { display: flex; display: -webkit-flex; flex-wrap: wrap; -webkit-flex-wrap: wrap; }

body.race-day ul.party-state > * { box-sizing: border-box; display: block; width: 100%; -webkit-flex: 0 0 auto; flex: 0 0 auto; }

@media (min-width: 661px) { body.race-day ul.party-state > * { width: 50%; }
  body.race-day ul.party-state > *:first-child { padding-right: 20px; }
  body.race-day ul.party-state > *:last-child { padding-left: 20px; } }

body.race-day ul.party-state > li.party-state { display: -webkit-flex; display: flex; }

body.race-day li.state { margin-bottom: 3rem; }

body.race-day.show-delegates .n-pledged-delegates, body.race-day.show-delegates .n-pledged-delegates-dots { display: none; }

body.race-day.show-pledged-delegates .n-delegates, body.race-day.show-pledged-delegates .n-delegates-dots { display: none; }

body.race-day.multi-state .race-anchor { display: block; position: relative; top: -3.5rem; }

body.race-day table.candidates { border-collapse: collapse; width: 100%; line-height: 1.4rem; }

body.race-day table.candidates th { padding-bottom: .5rem; border-bottom: 1px solid black; }

body.race-day table.candidates td, body.race-day table.candidates th { white-space: nowrap; padding: 0 .5rem; }

body.race-day table.candidates td { border-bottom: 1px solid #ccc; height: 2.25rem; line-height: 2.25rem; padding-top: .25rem; padding-bottom: .25rem; }

body.race-day table.candidates tr[data-candidate-slug=trump] td.candidate .inner { color: white; background: #B23151; }

body.race-day table.candidates tr[data-candidate-slug=cruz] td.candidate .inner { color: white; background: #6844AD; }

body.race-day table.candidates tr[data-candidate-slug=rubio] td.candidate .inner { color: white; background: #d98628; }

body.race-day table.candidates tr[data-candidate-slug=kasich] td.candidate .inner { color: white; background: #fa7060; }

body.race-day table.candidates tr[data-candidate-slug=carson] td.candidate .inner { color: white; background: #a85d59; }

body.race-day table.candidates tr[data-candidate-slug=clinton] td.candidate .inner { color: white; background: #a6c281; }

body.race-day table.candidates tr[data-candidate-slug=sanders] td.candidate .inner { color: white; background: #84c9ec; }

body.race-day table.candidates .pollster { text-align: right; }

body.race-day table.candidates td.candidate { text-align: left; position: relative; padding: 0; padding-right: 0; }

body.race-day table.candidates td.candidate .inner { border: .75rem solid white; border-left-width: 0; line-height: 1.25rem; padding-left: 2.5rem; max-width: 7rem; position: relative; }

body.race-day table.candidates td.candidate span { padding-left: .5rem; padding-right: .5rem; }

body.race-day table.candidates td.candidate img { display: block; position: absolute; width: 1.9rem; height: 2.85rem; left: .5rem; top: -50%; margin-top: -.2rem; }

body.race-day table.candidates tr.winner td.candidate span::after { color: inherit; content: '✓'; }

body.race-day table.candidates .n-delegates, body.race-day table.candidates .n-pledged-delegates { padding-left: 0; width: 1px; }

body.race-day table.candidates td.n-delegates, body.race-day table.candidates td.n-pledged-delegates { text-align: right; padding-right: .25rem; }

body.race-day table.candidates .n-votes, body.race-day table.candidates .percent-vote { text-align: right; width: 1px; }

body.race-day table.candidates .sparkline { display: inline-block; height: 1.2rem; vertical-align: middle; }

body.race-day table.candidates .percent { display: inline-block; width: 3em; }

body.race-day table.candidates td.n-delegates-dots, body.race-day table.candidates td.n-pledged-delegates-dots { padding-left: 0; white-space: normal; padding-right: .5rem; padding-left: 0; line-height: 25px; color: #888; }

body.race-day .race span.asterisk { color: #5c6b95; }

body.race-day .race p.n-votes-footnote, body.race-day .race p.poll-last-updated { font-size: .8rem; margin: .5rem 10px 1rem; color: #666; }

body.race-day .race sup { color: #5c6b95; vertical-align: top; font-size: .7rem; display: inline-block; height: .9rem; line-height: .9rem; }

body.race-day .race:not(.has-delegate-counts) table.candidates .n-delegates, body.race-day .race:not(.has-delegate-counts) table.candidates .n-delegates-dots { display: none; }

body.race-day .race:not(.has-pledged-delegate-counts) table.candidates .n-pledged-delegates, body.race-day .race:not(.has-pledged-delegate-counts) table.candidates .n-pledged-delegates-dots { display: none; }

body.race-day .race.no-precincts-reporting .n-votes, body.race-day .race.no-precincts-reporting .percent-vote { display: none; }

body.race-day .race.precincts-reporting table.candidates .pollster { display: none; }

body.race-day .delegate-summary .party-delegate-summaries { display: flex; display: -webkit-flex; flex-wrap: wrap; -webkit-flex-wrap: wrap; }

body.race-day .delegate-summary .party-delegate-summaries > * { box-sizing: border-box; display: block; width: 100%; -webkit-flex: 0 0 auto; flex: 0 0 auto; }

@media (min-width: 661px) { body.race-day .delegate-summary .party-delegate-summaries > * { width: 50%; }
  body.race-day .delegate-summary .party-delegate-summaries > *:first-child { padding-right: 20px; }
  body.race-day .delegate-summary .party-delegate-summaries > *:last-child { padding-left: 20px; } }

body.race-day .delegate-summary > p { padding: 0 10px; }

body.race-day .delegate-summary table.candidate-delegates { white-space: nowrap; border-collapse: collapse; }

body.race-day .delegate-summary table.candidate-delegates th, body.race-day .delegate-summary table.candidate-delegates td { padding: 5px 10px; }

body.race-day .delegate-summary table.candidate-delegates th { text-align: left; border-bottom: 1px solid black; }

body.race-day .delegate-summary table.candidate-delegates td { vertical-align: top; border-bottom: 1px solid #ccc; }

body.race-day .delegate-summary table.candidate-delegates td.candidate { width: 6rem; }

body.race-day .delegate-summary table.candidate-delegates td.candidate img { display: inline-block; height: 2rem; vertical-align: middle; padding-right: .25rem; }

body.race-day .delegate-summary table.candidate-delegates td.candidate span { display: inline-block; height: 2rem; line-height: 2rem; }

body.race-day .delegate-summary table.candidate-delegates th.n-delegates, body.race-day .delegate-summary table.candidate-delegates th.n-pledged-delegates { padding-right: 0; }

body.race-day .delegate-summary table.candidate-delegates td.n-delegates-int, body.race-day .delegate-summary table.candidate-delegates td.n-pledged-delegates-int { width: 2rem; height: 2rem; padding-right: .25rem; line-height: 2rem; text-align: right; }

body.race-day .delegate-summary table.candidate-delegates td.n-delegates-dots, body.race-day .delegate-summary table.candidate-delegates td.n-pledged-delegates-dots { width: 100%; padding-top: .5rem; white-space: normal; }

body.race-day .delegate-summary .state-delegates ul { display: -webkit-flex; display: flex; -webkit-flex-wrap: wrap; flex-wrap: wrap; -webkit-justify-content: center; justify-content: center; text-align: center; }

body.race-day .delegate-summary .state-delegates ul li { padding-top: .5rem; width: 2.2rem; cursor: pointer; }

body.race-day .delegate-summary .state-delegates ul .name { display: none; }

body.race-day .delegate-summary .state-delegates ul .map { display: inline-block; }

body.race-day .delegate-summary .state-delegates ul svg { width: 2.1rem; height: 2.1rem; }

body.race-day .delegate-summary .state-delegates ul path { fill: #e6e6e6; }

body.race-day .delegate-summary .state-delegates ul text { text-anchor: middle; alignment-baseline: middle; font-family: Source Sans Pro, Arial, Helvetica, sans-serif; font-weight: bold; font-size: 400px; }

body.race-day .delegate-summary li .n-delegates, body.race-day .delegate-summary li .n-pledged-delegates { color: #666; font-size: .8rem; }

body.race-day .delegate-summary .party-delegate-summary[data-party-id=Dem] text { fill: #5c6b95; }

body.race-day .delegate-summary .party-delegate-summary[data-party-id=Dem] .n-delegates-dots, body.race-day .delegate-summary .party-delegate-summary[data-party-id=Dem] .n-pledged-delegates-dots { color: #5c6b95; }

body.race-day .delegate-summary .party-delegate-summary[data-party-id=GOP] text { fill: #bc5c5c; }

body.race-day .delegate-summary .party-delegate-summary[data-party-id=GOP] .n-delegates-dots, body.race-day .delegate-summary .party-delegate-summary[data-party-id=GOP] .n-pledged-delegates-dots { color: #bc5c5c; }

body.race-day .delegate-summary .party-delegate-summary.state-highlighted .dot-group :not(.highlight) { opacity: .5; color: #666; }

body.race-day .delegate-summary .party-delegate-summary.state-highlighted .state-delegates li:not(.highlight) { -webkit-filter: grayscale(1); filter: grayscale(1); opacity: .5; }

body.race-day .delegate-summary .delegate-footnotes { padding-top: .5rem; }

body.race-day .delegate-summary .delegate-footnotes p { margin: 0; line-height: 1.5rem; font-size: .8rem; color: #666; text-align: center; }

body.race-day .delegate-summary .state-delegates { position: relative; }

.delegate-summary-tooltip { box-sizing: border-box; font-size: .8rem; text-align: center; padding: .4rem 2rem; line-height: 1.4rem; border: 1px solid #ccc; left: 5%; width: 90%; box-shadow: 0 0 10px #ccc; position: absolute; background: white; color: #666; }

.delegate-summary-tooltip p { display: inline; margin: 0; padding: 0; }

.delegate-summary-tooltip a.jump-to-race { white-space: nowrap; padding: 0 .5rem; }

.delegate-summary-tooltip a.close { text-decoration: none; box-sizing: border-box; display: block; position: absolute; right: 1px; top: 1px; padding: .4rem; font-size: 1rem; width: 1.4rem; height: 1.5rem; }

body.race-day.show-delegates .party-delegate-summary .n-pledged-delegates-int, body.race-day.show-delegates .party-delegate-summary .n-pledged-delegates-dots { display: none; }

body.race-day.show-pledged-delegates .party-delegate-summary .n-delegates-int, body.race-day.show-pledged-delegates .party-delegate-summary .n-delegates-dots { display: none; }

body.race-day #scrollfinder { height: 3rem; }

body.race-day #scrollfinder .dropdown-container { padding: 0.5em 0; margin: 0; }

body.race-day #scrollfinder .dropdown-container.fixed { position: fixed; display: block; top: 0; left: 0; width: 100%; background: #fff; box-shadow: 0 4px 2px -2px #ccc; z-index: 100; }

body.race-day #scrollfinder .dropdown-label { color: #999999; text-transform: uppercase; line-height: 2rem; padding-right: .5rem; }

body.race-day #scrollfinder .dropdown.open .dropdown-menu { display: block; }

body.race-day #scrollfinder .dropdown-inner { max-width: 30em; padding: 0 10px; margin: 0 auto; display: -webkit-flex; display: flex; }

body.race-day #scrollfinder .dropdown { -webkit-flex-grow: 1; flex-grow: 1; height: 2rem; position: relative; margin-top: -1px; }

body.race-day #scrollfinder a.dropdown-toggle { display: block; text-align: center; box-sizing: border-box; border: 1px solid #ccc; line-height: 2rem; padding: 0 0.5em; font-size: 1rem; font-family: 'Source Sans Pro'; text-decoration: none; color: inherit; }

body.race-day #scrollfinder .caret { position: absolute; right: .5rem; top: .75rem; }

body.race-day #scrollfinder .dropdown-menu { display: none; position: absolute; width: 100%; text-align: center; margin: auto; background: #fff; box-sizing: border-box; border: 1px solid #ccc; border-top: 0; z-index: 100; padding: .5rem 0; max-height: 400px; overflow-y: auto; }

body.race-day #scrollfinder .dropdown-menu a { display: block; text-decoration: none; padding: 0.4em; color: #000; }

body.race-day #scrollfinder .dropdown-menu a:hover { background: #d1e0fa; }

@media (max-width: 649px) { body.race-day #scrollfinder .state-name { display: none; } }

@media (min-width: 650px) { body.race-day #scrollfinder .second { display: none; }
  body.race-day #scrollfinder .race-title { display: none; } }

.race-day-nav { margin-top: 1rem; position: relative; width: 100%; background: #f8f8f8; text-align: center; text-transform: uppercase; display: -webkit-flex; display: flex; -webkit-align-items: center; align-items: center; }

.race-day-nav .previous { text-align: left; }

.race-day-nav .next { text-align: right; }

.race-day-nav .calendar { text-align: center; vertical-align: middle; height: 80px; }

.race-day-nav .previous, .race-day-nav .next, .race-day-nav .calendar { width: 33%; flex: 1 0 auto; -webkit-flex: 1 0 auto; }

@media (max-width: 660px) { .race-day-nav .previous, .race-day-nav .next { width: 50%; }
  .race-day-nav .calendar { display: none; } }

.race-day-nav a { display: block; color: #666; text-decoration: none; }

.race-day-nav a:hover { background: #5c6b95; color: #fff; }

.race-day-nav .label { display: block; font-size: 0.9em; }

@media (max-width: 660px) { .race-day-nav .label { font-size: 0.8em; } }

.race-day-nav .date { display: block; font-size: 1.4em; }

@media (max-width: 660px) { .race-day-nav .date { font-size: 1em; } }

.race-day-nav .previous-inner { box-sizing: border-box; padding: 18px 24px 18px 24px; }

@media (max-width: 660px) { .race-day-nav .previous-inner { padding: 10px 14px 10px 8px; } }

.race-day-nav .next-inner { box-sizing: border-box; padding: 18px 14px 18px 24px; }

@media (max-width: 660px) { .race-day-nav .next-inner { padding: 10px 8px 10px 14px; } }

.race-day-nav .calendar a { padding: 30px 18px; }

@media (max-width: 660px) { .race-day-nav .calendar a { padding: 10px; } }

.race-day-nav span.disabled { display: block; color: #ccc; }

body.race-day ul.other-races { margin: 0; padding: 0; list-style: none; display: -webkit-flex; display: flex; -webkit-flex-direction: column; flex-direction: column; -webkit-justify-content: center; justify-content: center; }

body.race-day ul.other-races li { display: block; text-align: center; margin: 1rem; padding: 2rem; background: #f8f8f8; border-radius: 1rem; color: #666; font-style: italic; }

body.race-day div.no-races { margin: 0; padding: 0; list-style: none; display: -webkit-flex; display: flex; -webkit-flex-direction: column; flex-direction: column; -webkit-justify-content: center; justify-content: center; }

body.race-day div.no-races p { display: block; text-align: center; margin: 1rem; padding: 2rem; background: #f8f8f8; border-radius: 1rem; color: #666; font-style: italic; }

body.race-day .race .party-state-delegates { margin-top: 1.5rem; text-align: center; font-size: .8rem; line-height: 1.5rem; }

body.race-day .race .party-state-delegates .with-candidates { color: #888; }

body.race-day .race .party-state-delegates .without-candidates { color: #ccc; }

body.race-day .race .party-state-delegates p { margin: 0; color: #666; }

body.race-day .race .party-state-delegates .n-delegates-dots, body.race-day .race .party-state-delegates .n-pledged-delegates-dots { min-height: 29px; }

body.race-day .race .party-state-delegates label { cursor: pointer; }

body.race-day .race .party-state-delegates label input { display: inline-block; margin: -2px 0 0; vertical-align: middle; }

ul.race-map-legend { display: -webkit-flex; display: flex; -webkit-flex-wrap: wrap; flex-wrap: wrap; -webkit-justify-content: center; justify-content: center; margin: 0; padding: 0; list-style: none; font-size: .9rem; line-height: 1rem; height: 4rem; text-align: center; }

ul.race-map-legend li { display: none; white-space: nowrap; padding: .25rem .25rem 0; height: 1rem; }

ul.race-map-legend li.enabled { display: -webkit-flex; display: flex; }

ul.race-map-legend .swatch { display: -webkit-flex; display: flex; box-sizing: border-box; border: 1px solid transparent; width: 2rem; height: 1rem; line-height: 1rem; margin-right: .2rem; margin-bottom: -.15rem; }

ul.race-map-legend .swatch * { width: 50%; height: 100%; }

ul.race-map-legend li[data-candidate="trump"] .swatch { background: #B23151; }

ul.race-map-legend li[data-candidate="cruz"] .swatch { background: #6844AD; }

ul.race-map-legend li[data-candidate="rubio"] .swatch { background: #d98628; }

ul.race-map-legend li[data-candidate="kasich"] .swatch { background: #fa7060; }

ul.race-map-legend li[data-candidate="carson"] .swatch { background: #a85d59; }

ul.race-map-legend li[data-candidate="clinton"] .swatch { background: #a6c281; }

ul.race-map-legend li[data-candidate="sanders"] .swatch { background: #84c9ec; }

ul.race-map-legend li:not([data-candidate]) .swatch { width: 1rem; background: white; border-color: #eee; }

ul.race-map-legend .leads { background: transparent url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="5" height="5"><path d="M-.5,-.5L.5,-.5M-.5,5.5L5.5,-.5M4.5,5.5L5.5,4.5" stroke-width="1.1" stroke="white"/></svg>'); }

.party-state-map svg { display: block; margin: 0 auto; max-width: 100%; width: 22em; max-height: 23em; height: auto; }

.party-state-map path { fill: none; }

.party-state-map path.state { stroke: #ddd; stroke-width: 3; fill: #fff; pointer-events: none; }

.party-state-map path.mesh { fill: none; stroke: #eee; stroke-width: 3; pointer-events: none; }

.party-state-map path.hover { stroke: black; stroke-width: 6; fill: rgba(255, 255, 255, 0.2); pointer-events: none; }

.party-state-map g.subcounties path { stroke-width: 1; }

.party-state-map g.cities { pointer-events: none; }

.party-state-map circle { fill: black; stroke: white; stroke-width: 1px; }

.party-state-map text { fill: none; font-family: Source Sans Pro, Helvetica, Arial, sans-serif; pointer-events: none; dominant-baseline: text-before-edge; font-size: 40px; }

.party-state-map text.background { fill: none; stroke: white; stroke-width: 10px; }

.party-state-map text.foreground { fill: #333; }

.party-state-map path.trump-wins { fill: #B23151; }

.party-state-map path.cruz-wins { fill: #6844AD; }

.party-state-map path.rubio-wins { fill: #d98628; }

.party-state-map path.kasich-wins { fill: #fa7060; }

.party-state-map path.carson-wins { fill: #a85d59; }

.party-state-map path.clinton-wins { fill: #a6c281; }

.party-state-map path.sanders-wins { fill: #84c9ec; }

.race-tooltip { position: absolute; box-sizing: border-box; width: 100%; max-width: 16rem; border: 1px solid #ccc; box-shadow: 0 0 10px #ccc; background: white; z-index: 1; }

.race-tooltip a.close { display: none; position: absolute; font-weight: bold; color: black; top: 0; right: 0; line-height: 1; padding: .5rem 1rem; }

.race-tooltip h4 { font-size: 1; line-height: 1; margin: 0; padding: .5rem 1rem; border-bottom: 1px solid #ccc; background: #eee; }

.race-tooltip table { box-sizing: border-box; margin: .5rem; padding: 0; border-collapse: collapse; }

.race-tooltip th, .race-tooltip td { padding: .2rem .5rem; }

.race-tooltip th { white-space: nowrap; border-bottom: 1px solid #ccc; }

.race-tooltip td { border-top: 1px dotted #ccc; }

.race-tooltip p.precincts { margin: 0 1rem 1rem; }

.race-tooltip .candidate { width: 100%; }

.race-tooltip .candidate, .race-tooltip .n-votes { padding-right: 0; }

.race-tooltip .n-votes, .race-tooltip .percent-vote { text-align: right; }

.race-tooltip .precincts, .race-tooltip .last-updated { margin: 0; font-size: 0.8em; color: #999; }

.race-tooltip tr.highlight-on-map td { color: white; }

.race-tooltip p.n-votes-footnote { display: block; font-size: .8rem; color: #666; margin: .5rem 1rem; }

.race-tooltip p.no-precincts-note { margin: .5rem; padding: 0 0.5rem; font-style: italic; }

.race-tooltip.opened-from-touch a.close { display: block; }

.race[data-party-id=Dem] svg path.candidate-wins, .race[data-party-id=Dem] svg path.candidate-leads { fill: #5c6b95; }

.race[data-party-id=Dem] svg path.candidate-loses, .race[data-party-id=Dem] svg path.candidate-trails { fill: #ddd; }

.race[data-party-id=Dem] svg path.no-results { fill: white; }

.race[data-party-id=GOP] svg path.candidate-wins, .race[data-party-id=GOP] svg path.candidate-leads { fill: #bc5c5c; }

.race[data-party-id=GOP] svg path.candidate-loses, .race[data-party-id=GOP] svg path.candidate-trails { fill: #ddd; }

.race[data-party-id=GOP] svg path.no-results { fill: white; }

.race.no-precincts-reporting .party-state-map g.counties, .race.no-precincts-reporting .party-state-map g.subcounties { display: none; }

.race.precincts-reporting .party-state-map path.state { stroke-width: 6; stroke: #666; }

body.race-day .race { padding: 2rem 0; width: 100%; }

body.race-day .race h3 { font-size: 1.5rem; }

body.race-day .race h2, body.race-day .race h3 { text-align: center; }

body.race-day .race .race-status { text-align: center; padding: 0; font-style: italic; }

body.race-day .race .race-status .status-past, body.race-day .race .race-status .status-present, body.race-day .race .race-status .status-future { display: none; height: 3.5rem; -webkit-flex-direction: column; flex-direction: column; -webkit-align-items: center; align-items: center; -webkit-justify-content: center; justify-content: center; }

body.race-day .race .race-status button.refresh { cursor: pointer; border: 2px solid transparent; padding: .1rem .5rem .15rem; margin: 0; background: #e82c0c; color: white; font: inherit; font-weight: bold; line-height: 1; vertical-align: middle; }

body.race-day .race .race-status button.refresh::before { content: ' '; background: url('data:image/svg+xml,<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 78 78"><path fill="white" d="M38.912,56.98c-8.401,0-15.414-5.893-17.157-13.777h11.347L16.5,18.777L-0.093,43.203h11.335 c1.862,13.641,13.524,24.172,27.677,24.172c4.7,0,9.117-1.174,13-3.221L44,56.23C42.384,56.715,40.686,56.98,38.912,56.98zM66.486,34.896c-2.153-13.299-13.658-23.461-27.566-23.468c-4.692,0-9.117,1.177-13,3.222l7.92,7.919 c1.608-0.488,3.321-0.754,5.088-0.754c8.157,0,14.984,5.558,16.98,13.082H44.764l16.601,24.431l16.597-24.431H66.486z"/></svg>'); vertical-align: middle; background-size: 100% 100%; display: inline-block; width: 1rem; height: 1rem; margin-right: .35rem; }

body.race-day .race .race-status button.refresh.clicked::before { animation: spin 1s infinite linear; }

body.race-day .race .race-status button.refresh:hover { border-color: #666; }

body.race-day .race .race-status p { margin: 0; padding: .1rem 1rem; }

body.race-day .race .race-status p.text { font-style: normal; padding-bottom: 1rem; }

body.race-day .race.past .race-status .status-past, body.race-day .race.future .race-status .status-future, body.race-day .race.present .race-status .status-present { display: -webkit-flex; display: flex; }

body.race-day .race .race-name { margin: 0; }

body.race-day .race .party-state-map { position: relative; }

body.race-day .race:not(.not-today) .link-to-race-day { margin: 0; padding: 2rem 1rem 0; color: #666; text-align: center; font-style: italic; }

@media (min-width: 661px) { body.race-day .race:not(.not-today) .link-to-race-day { display: none; } }

@media (max-width: 660px) { body.race-day .race.not-today { display: none; } }

body.race-day .race.not-today .link-to-race-day { margin: 0; }

body.race-day .race.not-today h3, body.race-day .race.not-today .party-state-map, body.race-day .race.not-today table.candidates, body.race-day .race.not-today .poll-last-updated, body.race-day .race.not-today .n-votes-footnote, body.race-day .race.not-today div.party-state-delegates { cursor: default; opacity: .3; -webkit-filter: grayscale(1); filter: grayscale(1); }

body.race-day .race[data-party-id=Dem] .sparkline path { stroke: #5c6b95; }

body.race-day .race[data-party-id=Dem] tr.highlight-on-map td { color: white; background: #5c6b95; }

body.race-day .race[data-party-id=GOP] .sparkline path { stroke: #bc5c5c; }

body.race-day .race[data-party-id=GOP] tr.highlight-on-map td { color: white; background: #bc5c5c; }
