.banner-generals{--banner-check-width: 6px;--banner-check-padding: 3px;--banner-check-min-width: calc(var(--banner-check-width) + (var(--banner-check-padding) * 2));position:fixed;bottom:0;left:0;right:0;margin:0 auto;width:100%;max-width:2000px;min-width:320px;font-family:var(--roboto);font-size:11px;font-weight:900;line-height:16px;color:var(--election-text-color);animation:frombottom .75s ease forwards;z-index:50}.banner-generals__content{position:relative;min-height:151px;background-color:var(--white);box-shadow:0 0 8px 0 var(--container_box_shadow_color);border-width:1px 1px 0 1px;border-style:solid;border-color:var(--election-border-color);border-radius:4px 4px 0 0;transition:transform .75s ease-in-out}.banner-generals__minimize{position:absolute;top:0;right:16px;transform:translate3d(0,-100%,0);min-width:64px;padding:8px;background-color:var(--white);border:solid var(--election-border-color);border-width:1px 1px 0 1px;border-radius:4px 4px 0 0;cursor:pointer}.banner-generals__minimize-text{font-family:var(--roboto);font-size:11px;font-weight:900;line-height:16px;color:var(--other-win);margin-right:4px}.banner-generals__minimize-icon{width:10px;height:7px;fill:var(--other-win);transition:rotate .75s ease-in-out}.banner-generals__content--minimized{transform:translate3d(0,100%,0)}.banner-generals__content--minimized .banner-generals__minimize-icon{rotate:180deg}.banner-generals__upper{display:grid;grid-template-rows:auto auto;grid-template-columns:auto auto;gap:8px;align-items:center;white-space:nowrap;padding:16px 16px 0}.banner-generals__tabs ul{display:flex}.banner-generals__tab{display:block;color:var(--election-text-color);background-color:var(--election-button-background);padding:4px 10px;border-radius:100vh;cursor:pointer;text-decoration:none}.banner-generals__tab:not(:last-of-type){margin-right:8px}.banner-generals__tab--active,.banner-generals__tab:hover{color:var(--white);background-color:var(--election-button-color)}.banner-generals__automated-text{grid-row:2;grid-column:1/-1;color:var(--rep-win);overflow:hidden;text-overflow:ellipsis;text-align:center}.banner-generals__watch{display:none;margin-left:auto}.banner-generals__watch a{padding:4px 10px;border-radius:100vh;text-decoration:none;color:var(--white);background-color:var(--rep-win)}.banner-generals__lower{display:flex;padding:12px 0}.banner-generals__race-table-wrapper{display:flex;justify-content:center;flex-grow:1;overflow:hidden}.banner-generals__race-table-wrapper--animate{animation:10s ease-in-out -.8s infinite cycletables}.banner-generals__my-races-empty{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:7px 0}.banner-generals__my-races-empty-upper{margin-bottom:4px;font-size:16px;line-height:22px;font-weight:900}.banner-generals__my-races-empty-lower{display:flex;align-items:center;font-size:11px;line-height:16px;font-weight:400}.banner-generals__favorite{margin:0 2px;fill:var(--white);stroke:var(--election-text-color);stroke-width:1.5;height:16px;width:16px}.banner-generals .banner-table{padding:0 16px;font-weight:400;font-size:12px;line-height:18px;scroll-snap-align:start}.banner-generals .banner-table:not(:last-of-type){border-right:1px solid var(--election-border-color)}.banner-generals .banner-table a{display:inline-block;vertical-align:top;width:100%;min-width:127px;white-space:nowrap;text-decoration:none;color:var(--election-text-color)}.banner-generals .banner-header{display:flex;justify-content:space-between}.banner-generals .banner-label{margin-right:4px;font-weight:900;overflow:hidden;text-overflow:ellipsis}.banner-generals .banner-party{display:inline-block;width:18px;height:18px;border-radius:50%;color:var(--white);font-weight:900;text-align:center}.banner-generals .banner-check-container{display:flex;justify-content:center;align-items:center;width:12px;height:12px;border-radius:50%}.banner-generals .banner-check{width:var(--banner-check-width);height:var(--banner-check-width);fill:var(--white)}.banner-generals:has(.banner-generals__content--minimized){pointer-events:none}.banner-generals:has(.banner-generals__content--minimized) .banner-generals__minimize{pointer-events:auto}.banner-generals:has(.banner-generals__content--minimized) .alert-ticker{pointer-events:auto}.banner-generals:after{content:"";position:fixed;bottom:0;transform:translate3d(0,100%,0);background-color:#fff;width:100%;height:100px}.banner-race-table{flex-grow:1;width:100%;overflow:hidden}.banner-race-table__label{display:flex}.banner-race-table__label span{overflow:hidden;text-overflow:ellipsis}.banner-race-table__special{color:var(--white);background-color:var(--other-win);width:18px;height:18px;padding:2px 3px;border-radius:50%;text-align:center;margin-left:4px;box-sizing:border-box;flex-shrink:0}.banner-race-table__content{display:flex;flex-direction:column}.banner-race-table__candidate{display:flex;justify-content:space-between;margin-top:4px}.banner-race-table__party-name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.banner-race-table__party{margin-right:4px}.banner-race-table__percent-held{display:flex;align-items:center}.banner-race-table__check{margin-right:4px}.banner-bop{border-right:1px solid var(--election-border-color)}.banner-bop__content{margin-top:4px}.banner-bop__candidate{display:flex;align-items:center;gap:4px}.banner-bop__candidate:last-of-type{margin-top:4px}.banner-bop__candidate .banner-bop__total{text-align:right}.banner-bop__pres-bar{padding:0 4px;flex:1}.banner-bop__bar-labels{display:flex;justify-content:space-between;margin-bottom:8px}.banner-bop__bar-label{display:flex;align-items:center}.banner-bop__bar-label.banner--dem>*:not(:last-child){margin-right:4px}.banner-bop__bar-label.banner--rep{flex-direction:row-reverse}.banner-bop__bar-label.banner--rep>*:not(:first-child){margin-right:4px}.banner-bop__total{font-weight:900}.banner-bop__check-container{display:flex;min-width:var(--banner-check-min-width)}.banner-bop .bar-chart__threshold:before,.banner-bop .bar-chart__threshold:after,.banner-bop .bar-chart__threshold-icon{display:none}.banner--dem .banner-bop__total{color:var(--dem-win)}.banner--dem .banner-party,.banner--dem .banner-check-container{background-color:var(--dem-win)}.banner--rep .banner-bop__total{color:var(--rep-win)}.banner--rep .banner-party,.banner--rep .banner-check-container{background-color:var(--rep-win)}.banner--ind .banner-party,.banner--ind .banner-check-container{background-color:var(--ind-win)}.banner--oth .banner-party,.banner--oth .banner-check-container{background-color:var(--other-win)}@keyframes cycletables{0%,to{opacity:0}8%,92%{opacity:1}}@keyframes frombottom{0%{transform:translateY(120%)}to{transform:translateY(0)}}@media screen and (min-width: 375px){.banner-generals__watch{display:block}.banner-generals .banner-table a{min-width:154px}.banner-generals__my-races-empty-upper{font-size:18px;line-height:24px}.banner-generals__favorite{margin:0 4px;height:20px;width:20px}}@media screen and (min-width: 768px){.banner-generals__content{min-height:127px}.banner-generals__upper{grid-template-rows:1fr;grid-template-columns:auto 1fr auto;gap:16px}.banner-generals__automated-text{grid-row:1;grid-column:2;text-align:left}.banner-generals__my-races-empty-lower{font-size:14px;line-height:20px}}
