.candidate-identity-content{min-width:0;flex:1}.candidate-number-line{display:flex;align-items:baseline;gap:.75rem;flex-wrap:wrap}.candidate-number-line strong{color:#082d42;font-size:1.22rem}.candidate-number-line span{color:#5d707b}.candidate-socials{display:flex;gap:.5rem;flex-wrap:wrap;margin:.85rem 0 1.1rem}.candidate-socials a{display:inline-flex;align-items:center;gap:.3rem;padding:.42rem .68rem;border:1px solid #c9d8da;border-radius:999px;background:#fff;color:#1456a8;font-size:.78rem;font-weight:800;text-decoration:none}.candidate-socials a:hover,.candidate-socials a:focus-visible{border-color:#1768d7;background:#eef5ff}.candidate-social-empty{margin:.8rem 0 1.05rem!important;color:#667b84;font-size:.8rem}.candidate-party{display:flex;align-items:center;gap:.72rem}.party-logo{position:relative;display:grid;width:48px;height:48px;flex:0 0 48px;place-items:center;overflow:hidden;border:1px solid #cad7d9;border-radius:12px;background:#fff;color:#153f50}.party-logo img{width:100%;height:100%;object-fit:contain;padding:5px}.candidate-party>div{display:grid;gap:.08rem}.candidate-party small{color:#667b84;font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.candidate-party a{color:#082d42;font-weight:800;text-decoration-thickness:1px;text-underline-offset:3px}.candidate-party>div>span{color:#5d707b;font-size:.76rem}.candidate-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:19px 0}.candidate-facts div{padding:12px;border-radius:11px;background:#f1f6f5}.candidate-facts dt{color:#5d707b;font-size:11px;font-weight:700}.candidate-facts dd{margin:4px 0 0;font-family:Manrope,sans-serif;font-size:14px}.candidate-assets,.candidate-networks{border-top:1px solid #d9e2e2;padding-top:13px}.candidate-assets{margin-top:18px}.candidate-assets summary,.candidate-networks summary{cursor:pointer;font-weight:800}.candidate-assets ul{margin:12px 0;padding:0;list-style:none}.candidate-assets li{display:flex;justify-content:space-between;gap:24px;padding:10px 0;border-bottom:1px solid #e3e9e9}.candidate-assets li span{color:#425d68}.candidate-assets li strong{flex:0 0 auto}.candidate-assets small{color:#667b84}.candidate-networks a{display:inline-block;margin:4px 8px 4px 0;padding:5px 9px;border-radius:999px;background:#e8f1ff;color:#1456a8;overflow-wrap:anywhere;text-decoration:none}.candidate-networks a:hover{text-decoration:underline}@media(max-width:700px){.candidate-facts{grid-template-columns:1fr 1fr}.candidate-socials{margin-bottom:1rem}}@media(max-width:600px){.candidate-identity{align-items:flex-start}.candidate-number-line{display:grid;gap:.22rem}.candidate-socials{gap:.4rem}.candidate-socials a{padding:.38rem .58rem}.party-logo{width:42px;height:42px;flex-basis:42px}}@media(max-width:420px){.candidate-facts{grid-template-columns:1fr}.candidate-assets li{align-items:flex-start;flex-direction:column;gap:3px}}

/* Candidate profile: identity first, useful actions at the moment of intent. */
.candidate-overview.candidate-identity{display:grid;grid-template-columns:104px minmax(0,1fr) minmax(235px,.55fr);align-items:center;gap:1.5rem 2rem;padding:1.75rem 0 2rem}
.candidate-overview .avatar{align-self:start;margin-top:.3rem}
.candidate-overview .candidate-identity-content{display:grid;align-content:center}
.candidate-overview .candidate-status-line{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}
.candidate-overview .candidate-status{display:inline-flex;padding:.28rem .55rem;border:1px solid #bfd9ce;border-radius:999px;background:#edf7f2;color:#17623e;font-size:.68rem;font-weight:800;letter-spacing:.035em;text-transform:uppercase}
.candidate-overview .candidate-number-line{margin:.65rem 0 1.05rem}
.candidate-overview .candidate-party{margin-top:.1rem}
.candidate-declared-links{align-self:stretch;padding-left:1.5rem;border-left:1px solid #ccd9da}
.candidate-declared-links>small{color:#657b84;font-size:.67rem;font-weight:800;letter-spacing:.1em}
.candidate-declared-links .candidate-socials{margin:.75rem 0 0}
.candidate-declared-links .candidate-social-empty{margin:.65rem 0 0!important}
.candidate-primary-actions{display:grid;grid-template-columns:minmax(220px,1.25fr) minmax(145px,.65fr) minmax(145px,.65fr);gap:.65rem;margin:1.1rem 0 0;padding:1.1rem;border:1px solid #c9d8da;border-radius:14px;background:#fff;box-shadow:0 10px 28px rgba(7,42,64,.055)}
.candidate-primary-actions button,.candidate-primary-actions>a{display:grid;min-height:48px;place-items:center;border:1px solid transparent;border-radius:10px;padding:.75rem 1rem;font-size:.86rem;font-weight:800;text-align:center;text-decoration:none;cursor:pointer}
.candidate-primary-actions .candidate-ballot-control{display:grid}
.candidate-primary-actions .candidate-ballot-control button{border:0;background:#1768d7;color:#fff}
.candidate-primary-actions .candidate-ballot-control button.is-added{background:#087b49}
.candidate-primary-actions .candidate-ballot-control button:disabled{background:#dfe7e8;color:#52676f;cursor:not-allowed}
.candidate-primary-actions .candidate-ballot-control small{margin:.4rem 0 0;color:#52676f;text-align:center}
.candidate-primary-actions .candidate-compare-action{background:#e5efff;color:#1456a8}
.candidate-primary-actions .candidate-share-action{border-color:#a9c3c7;background:#fff;color:#082d42}
.candidate-primary-actions>p{grid-column:1/-1;margin:.15rem 0 0;color:#657b84;font-size:.75rem;text-align:center}
.candidate-section-nav{display:flex;align-items:center;gap:.4rem 1.15rem;overflow-x:auto;margin:1.25rem 0 0;padding:.75rem 0;border-bottom:1px solid #ccd9da;white-space:nowrap;scrollbar-width:thin}
.candidate-section-nav span{color:#657b84;font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.candidate-section-nav a{color:#1456a8;font-size:.79rem;font-weight:800;text-underline-offset:3px}
#candidate-contest,#candidate-vote,#candidate-history,#candidate-data{scroll-margin-top:95px}
.candidate-network-groups{margin:1rem 0;padding:0;list-style:none}
.candidate-network-groups li{display:grid;grid-template-columns:minmax(120px,.35fr) 1fr;align-items:start;gap:1rem;padding:.65rem 0;border-bottom:1px solid #e2e9e9}
.candidate-network-groups li>span{display:flex;gap:.35rem;flex-wrap:wrap}
.candidate-network-groups a{margin:0}
.candidate-next .share-actions{grid-template-columns:repeat(3,1fr)}

@media(max-width:850px){
  .candidate-overview.candidate-identity{grid-template-columns:82px minmax(0,1fr)}
  .candidate-overview .avatar{width:82px;height:82px;flex-basis:82px}
  .candidate-declared-links{grid-column:1/-1;padding:.9rem 0 0;border-top:1px solid #dce5e6;border-left:0}
}
@media(max-width:600px){
  .candidate-overview.candidate-identity{grid-template-columns:68px minmax(0,1fr);gap:1rem;padding-top:.5rem}
  .candidate-overview .avatar{width:68px;height:68px;flex-basis:68px;margin-top:.15rem}
  .candidate-overview.candidate-identity h1{margin-top:.55rem;font-size:clamp(2rem,11vw,3rem);overflow-wrap:anywhere}
  .candidate-overview .candidate-status-line{align-items:flex-start;flex-direction:column}
  .candidate-overview .candidate-number-line{margin:.55rem 0 .9rem}
  .candidate-primary-actions{grid-template-columns:1fr 1fr;margin-top:.8rem;padding:.75rem}
  .candidate-primary-actions .candidate-ballot-control{grid-column:1/-1}
  .candidate-primary-actions button,.candidate-primary-actions>a{min-height:50px}
  .candidate-section-nav{margin-top:.8rem}
  .candidate-section-nav span{display:none}
  .candidate-network-groups li{grid-template-columns:1fr;gap:.25rem}
  .candidate-next .share-actions{grid-template-columns:1fr}
}

/* Social channels: recognizable destinations instead of generic redirect pills. */
.candidate-declared-links>small{color:#087443}
.candidate-declared-links .candidate-socials{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}
.candidate-socials .candidate-social-link,.candidate-socials .candidate-socials-more,.candidate-network-groups .candidate-social-link{--network-color:#087443;--network-bg:#eef7f2;display:flex;min-width:0;min-height:44px;align-items:center;gap:.55rem;margin:0;padding:.58rem .7rem;border:1px solid color-mix(in srgb,var(--network-color) 30%,#d5dfda);border-radius:9px;background:var(--network-bg);color:var(--network-color);font-size:.76rem;font-weight:800;line-height:1.15;text-decoration:none}
.candidate-socials .candidate-social-link:hover,.candidate-socials .candidate-social-link:focus-visible,.candidate-network-groups .candidate-social-link:hover,.candidate-network-groups .candidate-social-link:focus-visible{border-color:var(--network-color);background:#fff;box-shadow:0 5px 14px rgba(18,59,93,.08);transform:translateY(-1px);text-decoration:none}
.candidate-social-link>span,.candidate-socials-more>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.network-icon{width:21px;height:21px;flex:0 0 21px;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.network-icon .network-icon-fill{fill:currentColor;stroke:none}.network-icon .network-icon-light{stroke:#fff}
.candidate-social-link.network-instagram{--network-color:#b62b71;--network-bg:#fff1f7}
.candidate-social-link.network-facebook{--network-color:#1768d7;--network-bg:#eef5ff}
.candidate-social-link.network-x,.candidate-social-link.network-threads{--network-color:#17211d;--network-bg:#f1f3f2}
.candidate-social-link.network-youtube{--network-color:#c8171e;--network-bg:#fff0f0}
.candidate-social-link.network-tiktok{--network-color:#17211d;--network-bg:#eef8f7}
.candidate-social-link.network-linkedin{--network-color:#0a66a2;--network-bg:#eef7fb}
.candidate-social-link.network-telegram{--network-color:#1979a8;--network-bg:#edf8fc}
.candidate-social-link.network-whatsapp{--network-color:#087443;--network-bg:#eaf8f0}
.candidate-social-link.network-linktree{--network-color:#087443;--network-bg:#eff8e8}
.candidate-social-link.network-kwai{--network-color:#b84b16;--network-bg:#fff4ec}
.candidate-socials .candidate-socials-more{--network-color:#52645b;--network-bg:#f5f7f5}
.candidate-socials-more .network-icon circle{fill:currentColor;stroke:none}
.candidate-network-groups li>strong{padding-top:.65rem}
.candidate-network-groups li>span{gap:.5rem}
.candidate-network-groups .candidate-social-link{min-width:132px}
@media(max-width:420px){.candidate-declared-links .candidate-socials{grid-template-columns:1fr 1fr}.candidate-socials .candidate-social-link,.candidate-socials .candidate-socials-more{padding:.55rem .6rem}.network-icon{width:20px;height:20px;flex-basis:20px}}
