/*@media screen and (max-device-width: 568px) and (orientation: portrait) {.tr-selected-gray td.name, .tr-selected-white td.name  { white-space:normal!important; padding-left:10px!important }}
p.h5 {margin-top:0px;}p.h5 small { color:#333;}h3.h5 { margin-bottom:5px}
.progress {	background-color:gray!important; box-shadow:none}.progress p.pull-left { background-color:#d8d8d8; padding-top:2px; padding-bottom:10px}
div .table-22 > tbody > tr > td { border-top:10px solid #fff; height:22px; overflow:hidden; background-color:#deebf1; padding:0px}
div .table-22 > tbody > tr.deputados > td { border-top:0px none; height:auto; overflow:hidden; background-color:#d8d8d8; padding:10px 0px}
div .table-22 > tbody > tr.tr-selected-gray > td { border-top:4px solid #fff; background-color:#e0e0e0!important;}
div .table-22 > tbody > tr.tr-selected-white > td { border-top:0px none; background-color:#fff!important; border-bottom:1px solid #d8d8d8; font-size:87% }
div .table > tbody > tr > td.name, .small.name { background-color:#D8D8D8; padding-left:10px;white-space: nowrap;  padding-right:10px}
div .table > tbody > tr.tr-selected-white > td.name { padding-left:50px}tr.tr-selected-white, tr.tr-selected-gray { display:none;}
.small.name { height:22px; padding-top:2px}
.PTmap.not-selected { opacity:0.45;stroke:#999;}
.PTmap.selected-all { opacity:1;stroke:#999;}.PTmap.selected { opacity:1; stroke:#000;}
polygon.PTmap.selected, polygon.PTmap.not-selected { opacity:0!important; stroke:#000;}
polygon.PTmap.selected { stroke:#000;}
.Line.PTmap.selected { opacity:1!important; stroke:#000!important;}#lugaresParlamento div { height:140px!important; overflow:hidden!important}
.PTmap:hover{  cursor:pointer;}
.progress-bar { box-shadow:none!important}
.candidatos-presidenciais li {  display:inline-block; vertical-align:top; margin:15px 0px;}
.candidatos-presidenciais li span.small {width:110px; display:inline-block; word-wrap: break-word; font-size:75%; padding:10px 0px; min-height:55px}
div .progress { height:30px;}div .progress .progress-bar { line-height:27px}div .table > tbody > tr > td.name.padding-left-0 { padding-left:0px!important}div .table-22 > tbody > tr > td.padding-right-10 { padding-right:10px!important;}
*/

.navbar-dark .navbar-nav .nav-link{
  color: #fff;
}

.navbar-dark .navbar-toggler{
  color: #fff !important;
  border: none !important;
}

.img-responsive {
  display: block;
  max-width: 100%;
  height: auto;
}

.titulo_eleicoes {
  font-size: 26px;
  font-weight: 500;
}

.titulo_eleicoes-small{
  font-size: 20px;
  font-weight: 500;
}

.candidatos-europa li {
  display: inline-block;
  vertical-align: top;
  margin: 15px 0px;
  max-width:148px;
}

.candidatos-europa li img {
  border-radius: 50%;
}

.divider {
  height: 1px;
  margin: 10px 0;
  overflow: hidden;
  background: #C8D3D9;
}

.candidatos-europa li .text-info {
  color: #1F1FEA !important;
}

.update-time {
  align-self: flex-end;
}

.progress{
  height: 30px !important;
  border-radius: 0 !important;
  background-color: #e6ebee !important;
  box-shadow: none;
}
.img-circle {
  border-radius: 50%;
}

#elections.bg-cinza {
  margin-bottom: 10px;
}

.bg-cinza{
  background-color: #eee;
}

.seacrh-inputs select{
  margin-top: 5px;
}

.form-inline{
  margin: 10px 0;
}

.input-group-addon {
  padding: 9px 12px;
  font-size: 16px;
  font-weight: normal;
  line-height: 1;
  color: #555;
  text-align: center;
  background-color: #eee;
  border: 1px solid #ccc;
  border-radius: 0px;
}

.form-control{
  border-radius: 0 !important;
  background-color: #fff !important;
  font-size: 16px !important;
  display: block;
  width: 100%;
  height: 36px;
  padding: 6px 12px;
  font-size: 16px;
  line-height: 1.42857;
  color: #555;
  background-image: none;
  border: 1px solid #ccc;
  border-radius: 0px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,0.075);
  box-shadow: inset 0 1px 1px rgba(0,0,0,0.075);
  -webkit-transition: border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s;
  -o-transition: border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s;
  transition: border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s;
}
form.eleicoes {
    margin-bottom: 30px;
}

.table tr.separadores {
  background-color: #efefef;
}
.table td, .table th {
    padding: .75rem;
    vertical-align: top;
    border-top: 0px!important;
    border-bottom: 6px solid #F4F6F7;
}
.table td, .table th{
  padding: 12px !important;
}


thead.totaisglobais td{
  border-top:0;
}

div .table > tbody > tr.tr-selected-white > td.name, div .table-22 > tbody > tr.tr-selected-white > td {
  padding-left: 36px !important;
  color: #171718;
  font-size: 14px;
  line-height: 18px;
}

tr.tr-selected-white{
  border-bottom: 1px solid #C8D3D9;
  border-radius: 4px;
background: rgba(206, 221, 229, 0.48);
}

.hidden, .hidden td, .hidden tr{
  display: none !important;
  visibility: hidden !important;
}

.PTmap.selected-all {
  stroke: #ffffff;
  fill: #a9bbc4;
}

.PTmap.not-selected {
  fill: #a9bbc4;
  opacity: 1!important;
}

.PTmap.not-selected:hover, .PTmap.selected-all:hover {
  fill: #003cfb;
}

.PTmap:hover {
  cursor: pointer;
}

.PTmap.selected {
  opacity: 1;
  stroke: #ffffff;
  background-color: #003cfb;
  fill: #003cfb;
}

polygon.PTmap.selected { stroke: #000;}
polygon.PTmap.selected, polygon.PTmap.not-selected {  opacity: 0!important;  stroke: #000;}

.Line.PTmap.selected {
  opacity: 1!important;
  stroke: #000!important;
}
#PT30Line.PTmap.selected, #PT40Line.PTmap.selected {
  background-color: transparent;
  fill: none;
}

.titulo_eleicoes-single{
  font-size: 14px;
}
div .table > tbody > tr > td.name{
  padding-left: 24px !important;
}

div .table > tbody > tr > td.name, .small.name {
  padding-left: 5px;
  padding-right: 5px;
  width: 35%;
}

table tr {
  font-size: 14px;
}

.padding-right-5{
  padding-right: 5px;
}

.eleicoes_mandatos svg{
  font-size: 16px;
  position: relative;
  top: -2px;
  margin-left: 2px;
}

thead tr th{
  font-weight: 500;
}

.media-left, .media-right, .media-body {
  display: table-cell;
  vertical-align: middle;
}

.media-left, .media>.pull-left {
  padding-right: 10px;
}

.total-cand{
  margin-bottom: 8px;
}

.partido{
  background-color: #D8D8D8;
  white-space: nowrap;
  width: 20%;
  height: 30px;
  padding: 0;
  font-size: 14px;
  margin-bottom: 10px;
}

.margin-left-10{
  margin-left: 10px;
}

.text-danger b, .text-danger svg, .text-danger small{
  color: #a94442;
}

.text-primary b, .text-primary svg, .text-primary small{
  color: #0075ce;
}

.text-danger svg, .text-primary svg{
  position: relative;
  top: -3px;
  font-size: 24px;
}

div .table-22 > tbody > tr{
  background: #e6ebee;
}

div .table-22 > tbody > tr > td{
  border-color: #F5F6F8;
  padding-right: 5px!important;
  border-top: 10px solid #F5F6F8;
}

.table .progress{
  background: #e6ebee !important;
}
.table-hover tbody tr:hover {
  background-color: #e6ebee !important;
}

.table svg {
  position: relative;
  margin-left: 5px;
  top: -3px;
  font-size: 20px;
}

.table-header th{
  padding-bottom: 0 !important;
  border-top: 0 !important
}

.margin-5{
  margin: 5px;
}

.sidebar-table thead th{
  border: 0;
}

div .table-22 > tbody > tr.tr-selected-white > td , div .table-22 > tbody > tr.tr-selected-gray > td {
  background: #F5F6F8 !important;
  border: 0 !important;
}
tr.tr-selected-gray{
  border-radius: 4px;
  background: rgba(206, 221, 229, 0.24);
  font-size: 15px;
  font-weight: 500;
}
tr.tr-selected-white {
  border-radius: 4px;
  background: rgba(206, 221, 229, 0.48);
  font-size: 15px;
  font-style: normal;
  font-weight: 500;
}

.titulo_eleicoes-small img{
  display: inline-flex;
  vertical-align: top;
}

.deputados p{
  font-size: 12px;
  line-height: 16px;
  margin-bottom: 10px;
  float: left;
}

.deputados svg{
  font-size: 30px;
}
.path-il { background-color:#00ADEE !important; fill:#00ADEE !important}
.path-chega { background-color:#202056 !important; fill:#202056 !important}
.path-livre { background-color:#A3C760 !important; fill:#A3C760 !important}
.path-ppdpsdcdspp { background-color:#f89f1b !important; fill:#f89f1b!important }
.path-pdr { background-color:#9da2a8!important; fill:#9da2a8!important }
.path-lta { background-color:#8ead55!important; fill:#8ead55!important }
.path-pan { background-color:#1B647C!important; fill:#1B647C!important }
.path-cdspp { background-color:#00BDFF!important; fill:#00BDFF!important }
.path-ps { background-color:#eb81b4!important; fill:#eb81b4!important }
.path-ppdpsd { background-color:#f19b20!important; fill:#f19b20!important }
.path-pcppev { background-color:#d21f26!important; fill:#d21f26!important }
.path-be { background-color:#a41d21!important; fill:#a41d21!important  }
.path-ad { background-color:#00FFFF!important; fill:#00FFFF!important  }
.path-apu { background-color:#FF3333!important; fill:#FF3333!important  }
.path-udp { background-color:#FF0000!important; fill:#FF0000!important  }
.path-psptppanmpt { background-color:#e678aa!important; fill:#e678aa!important  }
.path-psn { background-color:#1D6A34!important; fill:#1D6A34!important  }
.path-prd { background-color:#336633!important; fill:#336633!important  }
.path-mdp { background-color:#8B0000!important; fill:#8B0000!important  }
.path-mas { background-color:#7a0101!important; fill:#7a0101!important  }
.path-mas { background-color:#1ea032!important; fill:#1ea032!important  }
.path-ppmpda { background-color:#0046af!important; fill:#0046af!important  }
.path-frs { background-color:#AA3333!important; fill:#AA3333!important  }
.path-PorApurar{ background-color:#a9bbc4!important; fill:#a9bbc4!important  }
.path-pan { background-color:#1B647C!important; fill:#1B647C!important }
.path-text {background-color:#333!important; fill:#333!important}
.PTmap.not-selected { opacity:1;stroke:#fff;}
.PTmap.selected-all { opacity:1;stroke:#fff;}
polygon.PTmap.selected, polygon.PTmap.not-selected { opacity:0!important; stroke:#000;}
polygon.PTmap.selected { stroke:#000;}
.Line.PTmap.selected { opacity:1!important; stroke:#000!important;}
#lugaresParlamento div { height:140px!important; overflow:hidden!important}
.PTmap:hover{  cursor:pointer;}
.navbar{ margin-bottom: 0px; }
.PTmap.not-selected:hover, .PTmap.selected-all:hover {
  opacity: 1;
  stroke: #fff;
  background-color: #003cfb;
  fill: #003cfb;
}
h2.h3.title-map{
  font-size: 20px!important;
}

.section-presidenciais h2{
  font-size: 24px;
  font-weight: 600;
  font-style: normal;
  line-height: 30px;
  color: #171d20;
  margin-top: 20px;
  margin-bottom: 20px;
}
.section-presidenciais .text-update p{
  color:  #3E515C;
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: 125%;
}
.section-presidenciais .text-update p:first-child{
  margin-bottom: 8px;
}
h3.no-results{
  margin: 73px 0 213px 0;
  font-size: 30px;
  font-weight: 500;
  line-height: normal;
  color: #a9bbc4;
}
.small, small{
  font-size: 0.75rem;
  line-height: 14px;
  margin-bottom: .5rem;
  margin-top: .5rem;
}


.titulos-concelhos{margin:25px 0 7px 0; font-size: 18px;font-weight: 500; line-height: normal; color: #171d20;}
div .progress{height: 30px!important;}
.divider-line{margin:4px 0; background:#a9bbc4; height: 1px;}
.text-abstencao{font-size: 14px; line-height: 1.71; color: #171d20;}
.bg-light-gray{background-color: #e6ebee;}
.small .form-control{padding-left: 0;}
  section .table td{padding: 0px!important;}
  span.data-results { position: absolute; right: 0;left: 0;}
  .mapFont{fill:#d5e0e6; font-size: 10px; font-weight: bold;}
  .mapFont#PT30Area{fill:red; font-size: 10px; font-weight: bold;}
  .mapFont polygon.PTmap {fill:red!important; font-size: 20px!important; font-weight: bold;}
  .bg-light-gray select.form-control:not([size]):not([multiple]) { height: 25px!important; border: 1px solid #a9bbc4!important; width: 244px!important;}
  .form-control{  font-size: 14px!important; font-weight: normal!important; font-stretch: normal; font-style: normal; line-height: normal!important; letter-spacing: normal; color: #171D20!important; padding: 0!important;}
  .input-group-addon {padding: 4px 12px!important;font-size: 14px!important;font-weight: normal;line-height: 1;	color: #555;text-align: center;	background-color: #eee;	border: 1px solid #ccc;	border-radius: 0px;}

  .candidatos-presidenciais li{margin:0px 0px 30px 0; max-width: 15%; min-height: 174px;}
  .candidatos-presidenciais li span.small{font-size:14px;}
  .candidatos-presidenciais li span.small, .candidatos-europa li span.small{line-height: normal; color: #171d20; text-align: center; display:inline-block; padding: 0; font-weight: 500; margin-bottom: 0!important; height: 33px; width: 100%;
  }
  .candidatos-presidenciais li span.text-info.clearfix.h4 b{font-size: 20px; font-weight: bold; bottom: 0; color: #171d20;}
  .nav.candidatos-presidenciais>li>a{padding:0;}

  .candidatos-europa span.small{
    color: #171d20;
    font-size: 14px;
    text-align: center;
    line-height: normal;
    display: block;
    margin: 10px 0 0 0!important;
  }

  .candidatos-europa li .text-info {
    color: #171d20 !important;
    display: block;
    line-height: normal;
    font-size: 20px;
    font-weight: 500;
    text-align: center;
  }
  .progress-bar{
    background-color:#003cfb;
    font-size: 16px;
    font-weight: bold;
  }

  p.h5 small{
    font-size: 14px!important;
    line-height: 24px!important;
    margin-top: 4px!important;
    display: block;
  }

  thead.totaisglobais td{
    background-color: transparent!important;
    padding: 0px!important;
    color: #171d20;
    font-size: 18px;
    font-weight: 500;
    line-height: normal!important;
  }

  span.valor-votos {
    white-space: nowrap;
    text-align: center;
    width: 130px;
  }
  /* Smartphones (portrait and landscape) ----------- */
@media only screen and (max-device-width : 480px) {
  .candidatos-presidenciais li{
  margin: 0px 0px 30px 0;
      max-width: 174px;
      min-height: 174px;
    }
    select.form-control:not([size]):not([multiple]){
      width: 100%;
    }
    .candidatos-presidenciais li span.small{font-size: 11px}
}
  @media (min-height: 481px) and (max-width: 767px){
    .candidatos-presidenciais li{
      max-width: 83px;
      min-height: 93px;
    }
    .candidatos-presidenciais li{
      margin:0px 0px 30px 0; max-width: 165px; min-height: 174px;}
  }

  @media (min-width: 768px){
    .navbar-nav>li {
      float: none;
    }

  }
  @media (min-width: 768px) and (max-width: 991px){
    .candidatos-presidenciais li{margin:0px 0px 30px 0; max-width: 165px; min-height: 174px;}
  }
  @media (max-width: 991px){
    .submenu-layout nav ul.navbar-nav.mr-auto {background-color: #ffffff;}
  }

}
@media (min-width: 992px){
  .candidatos-presidenciais li span.small{font-size: 14px;}
  .pull-md-right {
    float: right;
    margin: 0 !important;
  }
}
@media (min-width: 1024px){
  .worldnav-header-logo {
    display: inherit;
    font-size: inherit;
    line-height: 1em;
    width: inherit;
    padding: inherit;
  }
}


/*presidenciais 2026*/

/* =============================================================================
   CSS Variables (Design Tokens)
   ========================================================================== */
:root {
    /* Colors */
    --color-primary: #131C25;
    --color-secondary: #D81A2D;
    --color-text-dark: #171718;
    --color-text-medium: #3E515C;
    --color-text-light: #A9BBC4;
    --color-separator: #CEDDE5;
    --color-bg-light: #F4F6F7;
    --color-bg-lighter: #F1F0F0;
    --color-bg-dark: #363535;
    --color-bg-darker: #232323;
    --color-white: #FFFFFF;
    --color-gradient-start: #17334F;
    --color-gradient-end: #182C46;

    /* Typography */
    --font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

    /* Spacing */
    --spacing-xs: 4px;
    --spacing-sm: 8px;
    --spacing-md: 12px;
    --spacing-lg: 16px;
    --spacing-xl: 20px;
    --spacing-2xl: 24px;

    /* Border Radius */
    --radius-sm: 4px;
    --radius-md: 6px;
    --radius-lg: 8px;
    --radius-full: 100px;
}

/* =============================================================================
   Base Styles
   ========================================================================== */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: var(--font-family);
    background-color: var(--color-bg-light);
    color: var(--color-text-dark);
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* =============================================================================
   RTP Header Menu
   ========================================================================== */
.rtp-header-menu {
    background-color: var(--color-bg-dark);
    padding: 10px 0;
}

.rtp-nav {
    display: flex;
    gap: 20px;
    align-items: center;
}

.rtp-nav a {
    color: #C4C4C4;
    text-decoration: none;
    font-size: 14px;
    font-weight: 500;
    text-transform: uppercase;
    transition: color 0.2s;
}

.rtp-nav a:hover {
    color: var(--color-white);
}

.btn-login {
    background-color: var(--color-bg-darker);
    color: var(--color-white);
    border: none;
    padding: 8px 12px;
    font-size: 14px;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    transition: background-color 0.2s;
}

.btn-login:hover {
    background-color: #1a1a1a;
}

/* =============================================================================
   Main Navigation
   ========================================================================== */
.main-nav {
    background-color: var(--color-primary);
    padding: 17px 0;
}

.logo-rtp {
    height: 26px;
    width: auto;
}

.nav-links {
    display: flex;
    align-items: center;
    gap: 25px;
    margin-left: 23px;
}

.nav-links a {
    color: var(--color-bg-lighter);
    text-decoration: none;
    font-size: 15px;
    font-weight: 500;
    text-transform: uppercase;
    transition: opacity 0.2s;
}

.nav-links a:hover {
    opacity: 0.8;
}

.nav-links .nav-link-secondary {
    font-weight: 400;
}

.nav-divider {
    width: 1px;
    height: 14px;
    background-color: var(--color-bg-lighter);
}

.btn-search {
    background: none;
    border: none;
    color: var(--color-bg-lighter);
    cursor: pointer;
    padding: 8px;
    transition: opacity 0.2s;
}

.btn-search:hover {
    opacity: 0.7;
}

/* =============================================================================
   Header Section
   ========================================================================== */
.header-section {
    background: url('assets/background.png') center/cover no-repeat;
    position: relative;
    overflow: hidden;
}

.header-overlay {
    background-color: rgba(255, 255, 255, 0.85);
    padding: 25px 0;
}

.header-title {
    font-size: 40px;
    font-weight: 600;
    color: var(--color-primary);
    margin-bottom: 15px;
    line-height: 1.1;
}

.header-nav {
    display: flex;
    gap: 24px;
    align-items: center;
}

.header-nav a {
    color: var(--color-primary);
    text-decoration: none;
    font-size: 15px;
    font-weight: 500;
    text-transform: uppercase;
    opacity: 0.75;
    transition: opacity 0.2s;
    position: relative;
}

.header-nav a.active {
    opacity: 1;
}

.header-nav a.active::after {
    content: '';
    position: absolute;
    bottom: -8px;
    left: 0;
    right: 0;
    height: 3px;
    background-color: var(--color-secondary);
    border-radius: var(--radius-full);
}

.header-nav a:hover {
    opacity: 1;
}

/* =============================================================================
   Main Content
   ========================================================================== */
.main-content {
    padding: 40px 0;
}

/* Results Header */
.results-header {
    margin-bottom: 40px;
}

.section-title {
    font-size: 24px;
    font-weight: 600;
    color: #171D20;
    margin-bottom: var(--spacing-xl);
    letter-spacing: -0.02em;
}

.update-info {
    color: var(--color-text-medium);
    font-size: 14px;
    line-height: 1.25;
}

.update-info p {
    margin-bottom: 8px;
    color: var(--cinza-darker, #3E515C);
    font-family: Inter;
    font-size: 14px;
    font-style: normal;
    font-weight: 400;
    line-height: 125%;
}

/* =============================================================================
   Candidate Cards
   ========================================================================== */
.candidates-grid {
    margin-bottom: 40px;
}

.candidate-card {
    background: var(--color-white);
    border-radius: var(--radius-lg);
    padding: 12px;
    display: flex;
    gap: 12px;
    height: 100%;
    transition: box-shadow 0.2s;
}

.candidate-card:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.candidate-img {
    width: 112px;
    height: 140px;
    object-fit: cover;
    border-radius: var(--radius-md);
    flex-shrink: 0;
}

.candidate-info {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 16px;
}

.candidate-name {
    font-size: 17px;
    font-weight: 600;
    color: var(--color-primary);
    line-height: 1.15;
    letter-spacing: -0.01em;
    margin: 0;
}

.candidate-stats {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.percentage {
    font-size: 16px;
    font-weight: 700;
    color: var(--color-primary);
    line-height: 1.15;
}

.candidate-card .progress-bar {
    background-color: #EDF1F3;
    height: 6px;
    border-radius: var(--radius-full);
    overflow: hidden;
}

.candidate-card .progress-fill {
    height: 100%;
    background: linear-gradient(to left, var(--color-gradient-start), var(--color-gradient-end));
    border-radius: var(--radius-full);
    transition: width 0.3s ease;
}

.votes {
    font-size: 14px;
    color: var(--color-text-medium);
    line-height: 1.35;
}

/* =============================================================================
   Stats Cards
   ========================================================================== */
.stats-row {
    margin-bottom: 40px;
}

.stat-card {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.stat-title {
    font-size: 14px;
    font-weight: 700;
    color: #171D20;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--color-separator);
    margin: 0;
}

.stat-content {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.stat-percentage {
    font-size: 17px;
    font-weight: 700;
    color: var(--color-primary);
    line-height: 1.15;
}

.stat-progress {
    background-color: rgba(206, 221, 229, 0.6);
    height: 6px;
    border-radius: var(--radius-full);
    overflow: hidden;
}

.stat-progress-fill {
    height: 100%;
    background: linear-gradient(to left, var(--color-gradient-start), var(--color-gradient-end));
    border-radius: var(--radius-full);
    transition: width 0.3s ease;
}

.stat-info {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.stat-info p {
    font-size: 14px;
    font-weight: 500;
    color: var(--color-text-medium);
    line-height: 1.2;
    letter-spacing: 0.01em;
    margin: 0;
}

.stat-info strong {
    font-weight: 700;
}

/* =============================================================================
   Form Controls
   ========================================================================== */
.year-selector,
.district-selector {
    background-color: var(--color-bg-light);
    border-bottom: 1px solid var(--color-separator);
    padding: 12px 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

.year-selector label,
.district-selector label {
    font-size: 17px;
    color: var(--color-text-dark);
    margin: 0;
    white-space: nowrap;
}

.year-selector .form-control,
.district-selector .form-control {
    font-size: 17px;
    font-weight: 700;
    color: var(--color-text-dark);
    text-transform: uppercase;
    border: 1px solid var(--color-separator);
    border-radius: var(--radius-md);
    padding: 10px 16px;
    max-width: 200px;
}

form.eleicoes .form-control, select.form-control{
  color: var(--noticias-main, #131C25)!important;
  font-family: Inter!important;
  font-size: 17px!important;
  font-style: normal;
  font-weight: 700!important;
  line-height: 100%!important; /* 17px */
  background-color: transparent !important;
  box-shadow: inherit;
}

/* =============================================================================
   Totals Table
   ========================================================================== */
.totals-table {
    background: var(--color-white);
    border-radius: var(--radius-sm);
    overflow: hidden;
    margin-bottom: 72px;
}

.table-header {
    background-color: var(--color-separator);
    padding: 12px 16px;
    border-radius: 6px 6px 0px 0px;
}

.table-header .row {
    font-size: 14px;
    color: var(--color-text-dark);
    line-height: 1.2;
}

.table-body {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.table-row {
    background: var(--color-white);
    padding: 8px 16px;
}

.table-row:last-child {
    border-bottom-left-radius: var(--radius-sm);
    border-bottom-right-radius: var(--radius-sm);
}

.table-avatar {
    width: 32px;
    height: 40px;
    object-fit: cover;
    border-radius: var(--radius-sm);
    margin-right: 8px;
}

.table-name {
    font-size: 15px;
    font-weight: 600;
    color: var(--color-text-dark);
    line-height: 1.2;
}

.table-progress {
    background-color: #EDF1F3;
    height: 6px;
    border-radius: var(--radius-full);
    overflow: hidden;
}

.table-progress-fill {
    height: 100%;
    background: linear-gradient(to left, var(--color-gradient-start), var(--color-gradient-end));
    border-radius: var(--radius-full);
}

.table-percentage {
    font-size: 15px;
    font-weight: 600;
    color: var(--color-text-dark);
    line-height: 1.2;
}

.table-votes {
    font-size: 15px;
    color: var(--color-text-dark);
    line-height: 1.2;
}

/* =============================================================================
   Map Placeholder
   ========================================================================== */
.map-placeholder {
    background: var(--color-white);
    border-radius: var(--radius-sm);
    padding: 20px;
    height: 535px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.portugal-map {
    max-height: 100%;
    width: 100%;
}

/* =============================================================================
   Candidates Gallery
   ========================================================================== */
.candidates-gallery {
    margin-top: 20px;
    margin-bottom: 72px;
}

.gallery-card {
    background: var(--color-white);
    border-radius: var(--radius-sm);
    padding: 12px;
    transition: box-shadow 0.2s;
}

.gallery-card:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.gallery-card img {
    width: 100%;
    aspect-ratio: 112 / 140;
    object-fit: cover;
    border-radius: var(--radius-md);
    margin-bottom: 12px;
}

.gallery-card h4 {
    font-size: 17px;
    font-weight: 600;
    color: var(--color-primary);
    line-height: 1.15;
    letter-spacing: -0.01em;
    margin: 0;
}

/* =============================================================================
   Responsive Breakpoints
   ========================================================================== */

/* Mobile First - Default styles above are for xs (< 768px) */

/* Tablet - md (≥ 768px) */
@media (max-width: 991px) {
    .nav-links {
        display: none;
    }

    .header-title {
        font-size: 32px;
    }

    .rtp-nav {
        display: none;
    }
}

/* Mobile - xs (< 768px) */
@media (max-width: 767px) {
    .header-title {
        font-size: 28px;
    }

    .header-nav {
        flex-wrap: wrap;
        gap: 12px;
    }

    .header-nav a {
        font-size: 13px;
    }

    .section-title {
        font-size: 20px;
    }

    .candidate-card {
        flex-direction: column;
    }

    .candidate-img {
        width: 100%;
        height: auto;
        aspect-ratio: 112 / 140;
    }

    .footer-bottom {
        flex-direction: column;
        text-align: center;
    }
}

/* Desktop - lg (≥ 992px) */
@media (min-width: 992px) {
    .container {
        max-width: 1170px;
    }
}

/* Large Desktop - xl (≥ 1200px) */
@media (min-width: 1200px) {
    .container {
        max-width: 1440px;
        padding-left: 135px;
        padding-right: 135px;
    }
}

/* =============================================================================
   Utility Classes
   ========================================================================== */
   hr.elections-line{
    border-bottom: 1px solid var(--separador, #CEDDE5);
    background: #F4F6F7;
   }
.text-uppercase {
    text-transform: uppercase;
}

.text-nowrap {
    white-space: nowrap;
}

.mb-3 {
    margin-bottom: 1rem;
}

.mb-4 {
    margin-bottom: 1.5rem;
}

.mt-4 {
    margin-top: 1.5rem;
}

.mt-5 {
    margin-top: 3rem;
}

/* =============================================================================
   Filter Buttons (Total Global, Território Nacional, Estrangeiro)
   ========================================================================== */
.filter-btn {
    background-color: rgba(206, 221, 229, 0.24);
    border: none;
    border-radius: 6px;
    padding: 0 16px;
    height: 44px;
    font-size: 17px;
    font-weight: 700;
    color: var(--color-primary);
    cursor: pointer;
    transition: all 0.2s;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.filter-btn:hover {
    background-color: rgba(206, 221, 229, 0.4);
}

.filter-btn-active {
    background-color: var(--color-separator);
    border: 1px solid var(--color-separator);
}

.filter-btn-active:hover {
    background-color: #c0d4dd;
}

/* =============================================================================
   Filter Dropdowns (Ano, Distrito, Concelho, Freguesia)
   ========================================================================== */
.filter-dropdown {
    background-color: transparent;
    border: 1px solid var(--color-separator);
    border-radius: 6px;
    padding: 0 8px 0 16px;
    height: 44px;
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    transition: border-color 0.2s;
    position: relative;
}

.filter-dropdown:hover {
    border-color: #a9bbc4;
}

.filter-dropdown-label {
    font-size: 17px;
    font-weight: 400;
    color: var(--color-text-dark);
    white-space: nowrap;
}

.filter-dropdown-content {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    min-width: 0;
}

.filter-dropdown-value {
    font-size: 17px;
    font-weight: 700;
    color: var(--color-text-dark);
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.filter-dropdown-icon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transform: scaleY(-1);
    transition: transform 0.2s ease;
}

.filter-dropdown.active .filter-dropdown-icon {
    transform: scaleY(1);
}

.filter-dropdown-icon img,
.filter-dropdown-icon svg {
    width: 44px;
    height: 44px;
}

/* Dropdown options */
.filter-dropdown-options {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    background-color: #FFFFFF;
    border: 1px solid var(--color-separator);
    border-radius: 6px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    z-index: 1000;
    display: none;
    overflow: hidden;
}

.filter-dropdown.active .filter-dropdown-options {
    display: block;
}

.filter-dropdown-option {
    padding: 12px 16px;
    font-size: 17px;
    font-weight: 700;
    color: var(--color-text-dark);
    text-transform: uppercase;
    cursor: pointer;
    transition: background-color 0.2s;
}

.filter-dropdown-option:hover {
    background-color: var(--color-bg-light);
}

.filter-dropdown-option:active {
    background-color: #E0E8EC;
}

/* Dropdown disabled state */
.filter-dropdown-disabled {
    cursor: not-allowed;
    opacity: 1;
}

.filter-dropdown-disabled .filter-dropdown-label {
    color: var(--color-text-light);
}

.filter-dropdown-disabled .filter-dropdown-value {
    color: var(--color-text-light);
}

.filter-dropdown-disabled:hover {
    border-color: var(--color-separator);
}

/* Filter containers */
.filter-group {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    align-items: center;
}

.filter-section {
    margin: 32px 0;
}

/*fim presidenciais 2026 */


/*projeções*/
/* =============================================================================
   Projection Section Styles (from Figma)
   ========================================================================== */

/* Projeção da Abstenção Section */
.projection-abstention-section {
    margin-top: 60px;
    margin-bottom: 40px;
}

.projection-abstention-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}

.projection-abstention-title {
    font-size: 24px;
    font-weight: 600;
    color: var(--color-text-dark);
    line-height: 1.2;
    letter-spacing: -0.48px;
}

.projection-technical-link {
    font-size: 14px;
    font-weight: 500;
    color: var(--color-text-medium);
    text-decoration: none;
    line-height: 1.2;
}

.projection-technical-link:hover {
    text-decoration: underline;
    color: var(--color-text-dark);
}

.projection-abstention-description {
    font-size: 14px;
    font-weight: 400;
    color: var(--color-text-medium);
    line-height: 1.25;
    margin-bottom: 20px;
}

.projection-abstention-range {
    margin-bottom: 12px;
}

.projection-abstention-percentage {
    font-size: 20px;
    font-weight: 700;
    color: var(--color-primary);
    line-height: 1.15;
    margin-bottom: 12px;
}

.projection-abstention-bar {
    height: 6px;
    background-color: rgba(206, 221, 229, 0.6);
    border-radius: 20px;
    position: relative;
    overflow: hidden;
}

.projection-abstention-bar-fill {
    position: absolute;
    height: 100%;
    background: linear-gradient(to left, var(--color-gradient-start), var(--color-gradient-end));
    border-radius: 20px;
    left: 0;
    top: 0;
}

.projection-abstention-bar-fill-light {
    position: absolute;
    height: 100%;
    background: linear-gradient(to left, var(--color-gradient-start), var(--color-gradient-end));
    opacity: 0.48;
    border-radius: 20px;
    left: 0;
    top: 0;
}

/* Projeções RTP — Universidade Católica Section */
.projections-section {
    margin-top: 60px;
    margin-bottom: 40px;
}

.projections-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}

.projections-title {
    font-size: 24px;
    font-weight: 600;
    color: var(--color-text-dark);
    line-height: normal;
}

.projections-detail-link {
    font-size: 14px;
    font-weight: 500;
    color: var(--color-text-medium);
    text-decoration: none;
    line-height: 1.2;
}

.projections-detail-link:hover {
    text-decoration: underline;
    color: var(--color-text-dark);
}

.projections-candidates {
    display: flex;
    gap: 20px;
    margin-bottom: 12px;
}

.projection-candidate-photo {
    flex: 1;
    aspect-ratio: 112/140;
    border-radius: var(--radius-md);
    overflow: hidden;
}

.projection-candidate-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.projections-names {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
}

.projection-candidate-name {
    font-size: 17px;
    font-weight: 600;
    color: var(--color-text-dark);
    line-height: 1.1;
    text-align: center;
    letter-spacing: -0.17px;
    width: 115px;
}

.projections-divider {
    height: 1px;
    background-color: var(--color-separator);
    margin: 12px 0;
}

.projections-stats {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.projection-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    width: 115px;
}

.projection-stat-label {
    font-size: 13px;
    font-weight: 500;
    color: var(--color-text-medium);
    line-height: 1.3;
    letter-spacing: 0.2px;
}

.projection-stat-value {
    font-size: 14px;
    font-weight: 700;
    color: var(--color-text-medium);
    line-height: 1.3;
    letter-spacing: 0.2px;
}

/* =============================================================================
   Projection Section Styles (from Figma)
   ========================================================================== */

/* Projeção da Abstenção Section */
.projection-abstention-section {
    margin-top: 60px;
    margin-bottom: 40px;
}

.projection-abstention-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}

.projection-abstention-title {
    font-size: 24px;
    font-weight: 600;
    color: var(--color-text-dark);
    line-height: 1.2;
    letter-spacing: -0.48px;
}

.projection-technical-link {
    font-size: 14px;
    font-weight: 500;
    color: var(--color-text-medium);
    text-decoration: none;
    line-height: 1.2;
}

.projection-technical-link:hover {
    text-decoration: underline;
    color: var(--color-text-dark);
}

.projection-abstention-description {
    font-size: 14px;
    font-weight: 400;
    color: var(--color-text-medium);
    line-height: 1.25;
    margin-bottom: 20px;
}

.projection-abstention-range {
    margin-bottom: 12px;
}

.projection-abstention-percentage {
    font-size: 20px;
    font-weight: 700;
    color: var(--color-primary);
    line-height: 1.15;
    margin-bottom: 12px;
}

.projection-abstention-bar {
    height: 6px;
    background-color: rgba(206, 221, 229, 0.6);
    border-radius: 20px;
    position: relative;
    overflow: hidden;
}

.projection-abstention-bar-fill {
    position: absolute;
    height: 100%;
    background: linear-gradient(to left, var(--color-gradient-start), var(--color-gradient-end));
    border-radius: 20px;
    left: 0;
    top: 0;
}

.projection-abstention-bar-fill-light {
    position: absolute;
    height: 100%;
    background: linear-gradient(to left, var(--color-gradient-start), var(--color-gradient-end));
    opacity: 0.48;
    border-radius: 20px;
    left: 0;
    top: 0;
}

/* Projeções RTP — Universidade Católica Section */
.projections-section {
    margin-top: 60px;
    margin-bottom: 40px;
}

.projections-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}

.projections-title {
    font-size: 24px;
    font-weight: 600;
    color: var(--color-text-dark);
    line-height: normal;
}

.projections-detail-link {
    font-size: 14px;
    font-weight: 500;
    color: var(--color-text-medium);
    text-decoration: none;
    line-height: 1.2;
}

.projections-detail-link:hover {
    text-decoration: underline;
    color: var(--color-text-dark);
}

.projections-candidates {
    display: flex;
    gap: 20px;
    margin-bottom: 12px;
}

.projection-candidate-photo {
    flex: 1;
    aspect-ratio: 112/140;
    border-radius: var(--radius-md);
    overflow: hidden;
}

.projection-candidate-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.projections-names {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
}

.projection-candidate-name {
    font-size: 17px;
    font-weight: 600;
    color: var(--color-text-dark);
    line-height: 1.1;
    text-align: center;
    letter-spacing: -0.17px;
    width: 115px;
}

.projections-divider {
    height: 1px;
    background-color: var(--color-separator);
    margin: 12px 0;
}

.projections-stats {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.projection-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    width: 115px;
}

.projection-stat-label {
    font-size: 13px;
    font-weight: 500;
    color: var(--color-text-medium);
    line-height: 1.3;
    letter-spacing: 0.2px;
}

.projection-stat-value {
    font-size: 14px;
    font-weight: 700;
    color: var(--color-text-medium);
    line-height: 1.3;
    letter-spacing: 0.2px;
}

/* Year Selector */
.year-selector-container {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 20px;
}

.year-selector {
    border: 1px solid var(--color-separator);
    border-radius: var(--radius-md);
    padding: 12px 8px 12px 16px;
    display: flex;
    align-items: center;
    gap: 8px;
    background-color: var(--color-white);
    min-width: 277px;
}

.year-selector-label {
    font-size: 17px;
    font-weight: 400;
    color: var(--color-text-dark);
}

.year-selector-value {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.year-selector-year {
    font-size: 17px;
    font-weight: 700;
    color: var(--color-text-dark);
    text-transform: uppercase;
    min-width: 65px;
}

.year-selector-icon {
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Totais Globais Section */
.totais-globais-section {
    margin-top: 60px;
    margin-bottom: 40px;
}

.totais-globais-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}

.totais-globais-title {
    font-size: 24px;
    font-weight: 600;
    color: var(--color-text-dark);
    line-height: normal;
}

.totais-globais-table {
    background-color: var(--color-white);
    border-radius: var(--radius-sm);
    overflow: hidden;
}

.totais-globais-table-header {
    background-color: var(--color-separator);
    padding: 12px 16px;
    display: flex;
    align-items: center;
    gap: 20px;
}

.totais-globais-table-header-candidate {
    width: 262px;
    font-size: 14px;
    font-weight: 400;
    color: var(--color-text-dark);
    line-height: 1.2;
}

.totais-globais-table-header-bar {
    width: 178px;
    height: 6px;
    border-radius: 20px;
}

.totais-globais-table-header-stats {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 20px;
}

.totais-globais-table-header-stat {
    flex: 1;
    font-size: 14px;
    font-weight: 400;
    color: var(--color-text-dark);
    line-height: 1.2;
    text-align: right;
}

.totais-globais-table-body {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.totais-globais-row {
    background-color: var(--color-white);
    padding: 8px 16px;
    display: flex;
    align-items: center;
    gap: 20px;
    border-radius: var(--radius-sm);
}

.totais-globais-candidate {
    width: 262px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.totais-globais-candidate-photo {
    width: 32px;
    height: 40px;
    border-radius: var(--radius-sm);
    overflow: hidden;
}

.totais-globais-candidate-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.totais-globais-candidate-name {
    flex: 1;
    font-size: 15px;
    font-weight: 600;
    color: var(--color-text-dark);
    line-height: 1.2;
}

.totais-globais-progress-bar {
    width: 178px;
    height: 6px;
    background-color: #EDF1F3;
    border-radius: 20px;
    position: relative;
    overflow: hidden;
}

.totais-globais-progress-fill {
    position: absolute;
    height: 100%;
    background: linear-gradient(to left, var(--color-gradient-start), var(--color-gradient-end));
    border-radius: 20px;
    left: 0;
    top: 0;
}

.totais-globais-stats {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 20px;
    text-align: right;
}

.totais-globais-percentage {
    flex: 1;
    font-size: 15px;
    font-weight: 600;
    color: var(--color-text-dark);
    line-height: 1.2;
}

.totais-globais-votes {
    flex: 1;
    font-size: 15px;
    font-weight: 400;
    color: var(--color-text-dark);
    line-height: 1.2;
}

/* Abstention Detail Section */
.abstention-detail-section {
    margin-top: 60px;
    margin-bottom: 40px;
}

.abstention-detail-header {
    border-bottom: 1px solid var(--color-separator);
    padding-bottom: 8px;
    margin-bottom: 20px;
}

.abstention-detail-title {
    font-size: 14px;
    font-weight: 700;
    color: var(--color-text-dark);
    text-transform: uppercase;
    letter-spacing: 0.3px;
    line-height: 15px;
}

.abstention-detail-content {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.abstention-detail-range {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.abstention-detail-percentage {
    font-size: 17px;
    font-weight: 700;
    color: var(--color-primary);
    line-height: 1.15;
}

.abstention-detail-bar {
    height: 6px;
    background-color: rgba(206, 221, 229, 0.6);
    border-radius: 20px;
    position: relative;
    overflow: hidden;
}

.abstention-detail-bar-fill {
    position: absolute;
    height: 100%;
    background: linear-gradient(to left, var(--color-gradient-start), var(--color-gradient-end));
    border-radius: 20px;
    left: 0;
    top: 0;
}

.abstention-detail-stats {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.abstention-detail-stat {
    font-size: 14px;
    font-weight: 500;
    color: var(--color-text-medium);
    line-height: 1.2;
    letter-spacing: 0.2px;
}

.abstention-detail-stat strong {
    font-weight: 700;
}

/* Map Section */
.map-section {
    margin-top: 60px;
    margin-bottom: 40px;
}

.map-section-title {
    font-size: 24px;
    font-weight: 600;
    color: var(--color-text-dark);
    line-height: normal;
    margin-bottom: 20px;
}

.map-container {
    background-color: var(--color-white);
    border-radius: var(--radius-sm);
    padding: 20px;
    height: 535px;
    overflow: hidden;
}

.map-container img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* Candidate Photo Grid */
.candidate-photo-grid-section {
    margin-top: 60px;
    margin-bottom: 40px;
}

.candidate-photo-grid-title {
    font-size: 24px;
    font-weight: 600;
    color: var(--color-text-dark);
    line-height: normal;
    margin-bottom: 20px;
}

.candidate-photo-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 20px;
    margin-bottom: 20px;
}

.candidate-photo-grid-second-row {
    display: grid;
    grid-template-columns: repeat(6, 178.333px);
    gap: 20px;
}

.candidate-photo-card {
    background-color: var(--color-white);
    border-radius: var(--radius-sm);
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.candidate-photo-card-image {
    aspect-ratio: 112/140;
    border-radius: var(--radius-md);
    overflow: hidden;
}

.candidate-photo-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.candidate-photo-card-name {
    font-size: 17px;
    font-weight: 600;
    color: var(--color-primary);
    line-height: 1.15;
    letter-spacing: -0.17px;
}
