/* ================================================================
   PULSO MUNICIPAL v11 — FINAL DEFINITIVO
   ================================================================ */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&family=Syne:wght@700;800&display=swap');

:root {
  --blue:    #7c3aed;  --blue-v:  #8b5cf6;  --blue-d:  #6d28d9;
  --blue-l:  rgba(124,58,237,.18);  --blue-xl: rgba(124,58,237,.08);
  --sky:     #a78bfa;  --sky-l:   rgba(167,139,250,.14);
  --green:   #10b981;  --green-l: rgba(16,185,129,.14);
  --red:     #f87171;  --red-l:   rgba(248,113,113,.14);
  --amber:   #fbbf24;  --amber-l: rgba(251,191,36,.14);
  --slate:   #06070f;
  --bg:      #0b0c1a;  --bg2:     #0f1025;
  --surface: #161830;
  --border:  #252848;  --border2: #353868;
  --text:    #e8eaf6;  --text-m:  #9fa8c9;  --text-l:  #5c6593;
  --r: 8px;  --r-l: 16px;  --r-xl: 24px;
  --sh:   0 1px 4px rgba(124,58,237,.18);
  --sh-m: 0 4px 16px rgba(124,58,237,.25);
  --sh-l: 0 12px 40px rgba(124,58,237,.32);
  --sh-b: 0 6px 24px rgba(124,58,237,.45);
}

/* RESET */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body { font-family:'Inter',system-ui,sans-serif; background:var(--bg); color:var(--text); -webkit-font-smoothing:antialiased; overflow-x:hidden; }
a { text-decoration:none; color:inherit; }
img { max-width:100%; display:block; }
button { font-family:inherit; cursor:pointer; border:none; background:none; -webkit-tap-highlight-color:transparent; }

/* ANIMATIONS */
@keyframes fadeUp   { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:none; } }
@keyframes fadeIn   { from { opacity:0; } to { opacity:1; } }
@keyframes pulse    { 0%,100% { transform:scale(1); opacity:1; } 50% { transform:scale(1.6); opacity:.35; } }
@keyframes ticker   { 0% { transform:translateX(0); } 100% { transform:translateX(-50%); } }
@keyframes barGrow  { from { width:0 !important; } }
@keyframes confFall { 0% { transform:translateY(-10px) rotate(0); opacity:1; } 100% { transform:translateY(110vh) rotate(540deg); opacity:0; } }
@keyframes float    { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-8px); } }

.au { animation:fadeUp .46s ease both; }
.d1 { animation-delay:.07s; } .d2 { animation-delay:.14s; } .d3 { animation-delay:.21s; } .d4 { animation-delay:.28s; }

/* ══════ NAV ══════ */
.nav { position:fixed; top:0; left:0; right:0; z-index:1000; height:64px; background:var(--surface); border-bottom:2px solid rgba(139,92,246,.35); box-shadow:0 2px 16px rgba(124,58,237,.2); transition:box-shadow .3s; }
.nav.scrolled { box-shadow:0 3px 24px rgba(124,58,237,.32); }
.nav-inner { max-width:1320px; margin:0 auto; height:100%; display:flex; align-items:center; gap:8px; padding:0 20px; }
.nav-logo { display:flex; align-items:center; gap:11px; flex-shrink:0; }
.nav-logo-icon { width:38px; height:38px; border-radius:10px; background:linear-gradient(135deg,var(--blue),var(--sky)); display:flex; align-items:center; justify-content:center; box-shadow:0 3px 12px rgba(124,58,237,.45); transition:transform .22s; }
.nav-logo:hover .nav-logo-icon { transform:rotate(-6deg) scale(1.08); }
.nav-logo-icon svg { width:20px; height:20px; }
.nav-logo-name { font-family:'Syne',sans-serif; font-size:1em; font-weight:800; color:var(--text); letter-spacing:-.3px; }
.nav-logo-sub { font-size:.58em; color:var(--text-l); font-weight:600; }
.nbrand-new { display:flex; align-items:center; gap:10px; text-decoration:none; flex-shrink:0; }
.nbrand-text { font-family:'Syne',sans-serif; font-weight:700; font-size:.95em; line-height:1.1; color:var(--text); }
.nbrand-text strong { display:block; font-weight:900; font-size:1.1em; }
.nbrand-right { display:flex; flex-direction:column; gap:2px; }
.nbrand-pulse { width:120px; height:18px; }
.nbrand-sub { font-size:.5em; font-weight:700; color:var(--text-l); letter-spacing:1px; text-transform:uppercase; white-space:nowrap; }
.nav-links { display:flex; align-items:center; gap:2px; margin-left:auto; }
.nav-a { color:var(--text-m); font-size:.86em; font-weight:600; padding:7px 13px; border-radius:var(--r); transition:all .18s; display:flex; align-items:center; gap:5px; white-space:nowrap; min-height:40px; }
.nav-a:hover, .nav-a.active { color:var(--blue); background:var(--blue-l); }
.nav-premium-btn { display:inline-flex; align-items:center; gap:7px; background:linear-gradient(135deg,#d97706,#b45309); color:#fff !important; padding:7px 16px; border-radius:20px; font-size:.82em; font-weight:800; box-shadow:0 3px 12px rgba(217,119,6,.25); transition:all .22s; white-space:nowrap; cursor:pointer; border:none; font-family:inherit; min-height:38px; }
.nav-premium-btn:hover { transform:translateY(-2px); box-shadow:0 6px 20px rgba(217,119,6,.35); }
.nav-socials { display:flex; gap:6px; padding-left:10px; border-left:1px solid var(--border); }
.nav-soc { width:36px; height:36px; border-radius:var(--r); background:var(--bg); display:flex; align-items:center; justify-content:center; transition:all .18s; }
.nav-soc:hover { background:var(--blue-l); }
.nav-soc svg { width:15px; height:15px; transition:all .18s; }
.nav-burger { display:none; color:var(--text-m); font-size:1.3em; padding:8px; border-radius:var(--r); min-width:44px; min-height:44px; align-items:center; justify-content:center; transition:all .18s; }
.nav-burger:hover { background:var(--bg2); }

/* DRAWER */
.drawer { position:fixed; top:64px; left:0; right:0; bottom:0; z-index:990; background:var(--surface); overflow-y:auto; transform:translateX(-100%); transition:transform .3s cubic-bezier(.4,0,.2,1); box-shadow:var(--sh-l); border-top:2px solid rgba(139,92,246,.35); }
.drawer.open { transform:none; }
.drawer-links { padding:10px 0; }
.drawer-a { display:flex; align-items:center; gap:14px; padding:15px 22px; color:var(--text-m); font-weight:600; font-size:.97em; border-bottom:1px solid var(--border); transition:all .15s; min-height:50px; }
.drawer-a:hover { color:var(--blue); background:var(--blue-l); padding-left:28px; }
.drawer-div { height:5px; background:var(--bg); }

/* ══════ TICKER ══════ */
.ticker { background:var(--blue); height:36px; overflow:hidden; display:flex; align-items:center; }
.ticker-inner { max-width:1320px; margin:0 auto; width:100%; display:flex; align-items:center; padding:0 20px; }
.t-badge { display:flex; align-items:center; gap:5px; background:rgba(255,255,255,.2); color:#fff; padding:3px 10px; border-radius:4px; font-size:.68em; font-weight:800; letter-spacing:1.5px; flex-shrink:0; }
.t-dot { width:5px; height:5px; background:#fff; border-radius:50%; animation:pulse 1.4s ease infinite; }
.ticker-mask { flex:1; overflow:hidden; white-space:nowrap; margin-left:14px; mask-image:linear-gradient(to right,transparent,#000 3%,#000 97%,transparent); }
.ticker-track { display:inline-block; animation:ticker 90s linear infinite; }
.ticker-track:hover { animation-play-state:paused; }
.t-item { display:inline-flex; align-items:center; padding:0 28px; color:rgba(255,255,255,.88); font-size:.78em; font-weight:500; }
.t-item::after { content:"·"; opacity:.4; margin-left:28px; }
.t-item:hover { color:#fff; }

/* ══════ HERO ══════ */
.hero { padding-top:100px; background:linear-gradient(150deg,#0d0e22 0%,#12102e 55%,#0e1028 100%); position:relative; overflow:hidden; }
.hero::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse 60% 80% at 80% 30%,rgba(124,58,237,.22),transparent 60%); }
.hero::after { content:''; position:absolute; bottom:0; left:0; right:0; height:4px; background:linear-gradient(90deg,var(--blue),var(--sky),var(--blue)); }
.hero-orb { position:absolute; border-radius:50%; filter:blur(60px); pointer-events:none; }
.hero-orb-1 { width:350px; height:350px; background:rgba(124,58,237,.12); top:-80px; right:-60px; animation:float 8s ease-in-out infinite; }
.hero-orb-2 { width:220px; height:220px; background:rgba(167,139,250,.08); bottom:-30px; left:5%; animation:float 10s ease-in-out infinite reverse; }
.hero-content { max-width:1320px; margin:0 auto; padding:52px 24px 0; position:relative; z-index:1; display:grid; grid-template-columns:1fr 400px; gap:48px; align-items:center; }
.hero-badge { display:inline-flex; align-items:center; gap:8px; background:rgba(124,58,237,.18); border:1px solid rgba(139,92,246,.35); color:var(--sky); font-size:.72em; font-weight:700; letter-spacing:1.5px; padding:5px 14px; border-radius:20px; text-transform:uppercase; margin-bottom:18px; }
.hero-badge-dot { width:6px; height:6px; background:var(--sky); border-radius:50%; animation:pulse 2s ease infinite; }
.hero-title { font-family:'Syne',sans-serif; font-size:clamp(2em,4.5vw,3.6em); font-weight:800; line-height:1.05; letter-spacing:-2px; margin-bottom:18px; }
.hero-title-white { color:var(--text); }
.hero-title-grad { background:linear-gradient(135deg,var(--sky),var(--blue-v)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.hero-sub { font-size:1.02em; color:var(--text-m); line-height:1.75; max-width:480px; margin-bottom:28px; }
.hero-ctas { display:flex; gap:12px; flex-wrap:wrap; }
.btn-primary { display:inline-flex; align-items:center; gap:9px; background:linear-gradient(135deg,var(--blue),var(--sky)); color:#fff; padding:13px 24px; border-radius:var(--r-xl); font-weight:800; font-size:.96em; box-shadow:var(--sh-b); transition:all .22s; min-height:48px; }
.btn-primary:hover { transform:translateY(-3px); box-shadow:0 12px 30px rgba(124,58,237,.5); }
.btn-ghost { display:inline-flex; align-items:center; gap:9px; background:var(--surface); border:1.5px solid var(--border2); color:var(--sky); padding:13px 24px; border-radius:var(--r-xl); font-weight:700; font-size:.96em; transition:all .22s; min-height:48px; }
.btn-ghost:hover { background:var(--blue-l); border-color:var(--blue); transform:translateY(-3px); }
.hero-card { background:rgba(22,24,48,.88); border:1px solid rgba(139,92,246,.25); backdrop-filter:blur(14px); border-radius:20px; padding:22px; position:relative; z-index:1; box-shadow:var(--sh-l); animation:float 7s ease-in-out infinite .3s; }
.hero-card-live { display:flex; align-items:center; gap:10px; margin-bottom:13px; }
.live-badge { display:flex; align-items:center; gap:6px; background:rgba(124,58,237,.18); border:1px solid rgba(139,92,246,.3); color:var(--sky); padding:4px 12px; border-radius:12px; font-weight:800; font-size:.68em; letter-spacing:.8px; }
.live-dot { width:6px; height:6px; background:var(--sky); border-radius:50%; animation:pulse 1.5s ease infinite; }
.hero-card-q { font-size:.95em; font-weight:700; line-height:1.4; color:var(--text); margin-bottom:16px; }
.hero-mini-bar { margin-bottom:10px; }
.hmb-row { display:flex; justify-content:space-between; align-items:center; margin-bottom:5px; font-size:.82em; color:var(--text); }
.hmb-name { font-weight:600; display:flex; align-items:center; gap:6px; }
.hmb-pct { font-weight:900; color:var(--blue); }
.hmb-track { height:7px; background:var(--border); border-radius:4px; overflow:hidden; }
.hmb-fill { height:100%; border-radius:4px; }
.hero-float-1 { position:absolute; top:-12px; right:-12px; background:rgba(22,24,48,.95); border:1px solid var(--border2); border-radius:14px; padding:10px 16px; color:var(--text); text-align:center; box-shadow:var(--sh-m); animation:float 5s ease-in-out infinite; }
.hero-float-2 { position:absolute; bottom:-12px; left:-12px; background:rgba(22,24,48,.95); border:1px solid var(--border2); border-radius:14px; padding:10px 16px; color:var(--text); text-align:center; box-shadow:var(--sh-m); animation:float 6s ease-in-out infinite reverse; }
.hf-num { font-family:'Syne',sans-serif; font-size:1.35em; font-weight:800; color:var(--blue); }
.hf-lbl { font-size:.63em; color:var(--text-l); margin-top:2px; }
.hero-stats { background:var(--blue); position:relative; z-index:1; margin-top:40px; }
.hero-stats-in { max-width:1320px; margin:0 auto; display:flex; }
.h-stat { flex:1; padding:16px 12px; text-align:center; border-right:1px solid rgba(255,255,255,.12); }
.h-stat:last-child { border-right:none; }
.h-stat-n { font-family:'Syne',sans-serif; font-size:1.55em; font-weight:800; color:#fff; line-height:1; }
.h-stat-l { font-size:.63em; color:rgba(255,255,255,.75); text-transform:uppercase; letter-spacing:.8px; margin-top:3px; font-weight:700; }

/* ══════ LAYOUT ══════ */
.sec { max-width:1320px; margin:0 auto; padding:48px 20px; }
.sec-sm { max-width:1320px; margin:0 auto; padding:0 20px 36px; }
.section { max-width:1320px; margin:0 auto; padding:0 20px; }
.sec-head, .section-title { display:flex; align-items:flex-end; justify-content:space-between; flex-wrap:wrap; gap:10px; margin-bottom:24px; }
.sec-title, .section-title h2 { font-family:'Syne',sans-serif; font-size:clamp(1.3em,2.5vw,1.85em); font-weight:800; color:var(--text); letter-spacing:-.8px; }
.sec-title em, .section-title h2 span { font-style:normal; color:var(--blue); }
.sec-sub { color:var(--text-m); font-size:.9em; margin-top:3px; }
.see-all { color:var(--blue); font-weight:700; font-size:.86em; display:flex; align-items:center; gap:5px; transition:gap .18s; white-space:nowrap; }
.see-all:hover { gap:9px; }
.divider { height:1px; background:linear-gradient(to right,transparent,var(--border),transparent); margin:0 20px; }
.ad-slot { max-width:1000px; margin:0 auto; padding:0 20px 32px; }
.ad-slot-inner { background:var(--surface); border-radius:var(--r-l); overflow:hidden; border:1px solid var(--border); }

/* ══════ SEARCH ══════ */
.search-box { background:var(--surface); border:1.5px solid var(--border); border-radius:var(--r-xl); padding:16px 20px; box-shadow:var(--sh); }
.search-input-row { display:flex; align-items:center; gap:12px; background:var(--bg); border:1.5px solid var(--border); border-radius:var(--r-xl); padding:10px 16px; margin-bottom:12px; transition:border-color .2s; }
.search-input-row:focus-within { border-color:var(--blue); box-shadow:0 0 0 3px rgba(124,58,237,.2); }
.search-ico { color:var(--text-l); font-size:1.1em; flex-shrink:0; }
.search-field { flex:1; border:none; background:transparent; outline:none; font-size:.95em; font-family:inherit; color:var(--text); min-height:36px; }
.search-field::placeholder { color:var(--text-l); }
.geo-row { display:flex; gap:10px; flex-wrap:wrap; }
.geo-sel { flex:1; min-width:130px; padding:10px 32px 10px 12px; border:1.5px solid var(--border); border-radius:var(--r-l); background:var(--surface); font-size:.87em; font-family:inherit; color:var(--text); -webkit-appearance:none; appearance:none; cursor:pointer; min-height:44px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='11'%3E%3Cpath fill='%23a78bfa' d='M5.5 7.5L1 3h9z'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 11px center; transition:border-color .2s; }
.geo-sel:focus { outline:none; border-color:var(--blue); }
.geo-sel:disabled { opacity:.4; cursor:not-allowed; }
.date-filter-row { display:flex; align-items:center; gap:8px; flex-wrap:wrap; padding:12px 0 2px; border-top:1px solid var(--border); margin-top:10px; }
.date-chip-group { display:flex; align-items:center; gap:7px; flex:1; flex-wrap:wrap; }
.date-chip-label { font-size:.78em; font-weight:700; color:var(--text-l); white-space:nowrap; }
.date-chip { display:flex; align-items:center; gap:5px; background:var(--bg2); border:1.5px solid var(--border); border-radius:20px; padding:6px 14px; font-size:.81em; font-weight:600; color:var(--text-m); cursor:pointer; transition:all .18s; min-height:38px; white-space:nowrap; }
.date-chip:hover { border-color:var(--blue); background:var(--blue-l); color:var(--sky); }
.date-chip.active { background:var(--blue-l); border-color:var(--blue); color:var(--blue); font-weight:700; }
.date-input-wrap { display:flex; align-items:center; gap:6px; background:var(--bg2); border:1.5px solid var(--border); border-radius:20px; padding:5px 14px; transition:all .18s; min-height:38px; }
.date-input-wrap:focus-within { border-color:var(--blue); background:var(--blue-l); }
.date-input-wrap label { font-size:.75em; font-weight:700; color:var(--text-l); white-space:nowrap; }
.date-input { border:none; background:transparent; outline:none; font-size:.82em; font-family:inherit; color:var(--text); width:110px; }
.btn-clear-date { display:flex; align-items:center; gap:5px; padding:6px 13px; background:transparent; border:1.5px solid var(--border2); border-radius:20px; font-size:.78em; color:var(--text-l); font-weight:700; cursor:pointer; transition:all .18s; min-height:38px; }
.btn-clear-date:hover { background:var(--red-l); color:var(--red); border-color:var(--red); }
.tab-pills { display:flex; gap:7px; flex-wrap:wrap; }
.tab-pill { padding:8px 18px; border-radius:20px; font-size:.85em; font-weight:700; border:1.5px solid var(--border); background:var(--surface); color:var(--text-m); cursor:pointer; transition:all .18s; min-height:42px; display:flex; align-items:center; }
.tab-pill:hover { background:var(--blue-l); color:var(--blue); }
.tab-pill.active { background:var(--blue); color:#fff; border-color:var(--blue); box-shadow:var(--sh-b); }
.tab-pill.inactive { background:var(--surface); color:var(--text-m); }
.sec-count { font-size:.81em; color:var(--text-l); font-weight:600; }

/* ══════ POLL CARDS ══════ */
.polls-grid, .zone-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.pc { background:var(--surface); border:1.5px solid var(--border); border-radius:var(--r-l); overflow:hidden; display:flex; flex-direction:column; box-shadow:var(--sh); transition:all .28s cubic-bezier(.34,1.4,.64,1); text-decoration:none; color:var(--text); -webkit-tap-highlight-color:transparent; }
.pc:hover { transform:translateY(-6px); box-shadow:var(--sh-l); border-color:var(--blue); }
.pc-img-wrap { position:relative; overflow:hidden; padding-bottom:58.33%; height:0; }
.pc-img { position:absolute; top:0; left:0; width:100%; height:100%; object-fit:cover; transition:transform .45s ease; display:block; }
.pc:hover .pc-img { transform:scale(1.03); }
.pc-badges { position:absolute; bottom:0; left:0; right:0; display:flex; align-items:center; gap:6px; flex-wrap:wrap; padding:8px 10px; background:linear-gradient(to top,rgba(6,5,20,.75),transparent); }
.card-tipo-badge { display:inline-flex; align-items:center; gap:5px; padding:3px 9px; border-radius:10px; font-size:.63em; font-weight:800; letter-spacing:.4px; text-transform:uppercase; color:#fff; flex-shrink:0; white-space:nowrap; }
.card-tipo-badge.aprobacion { background:rgba(5,150,105,.85); }
.card-tipo-badge.electoral   { background:rgba(30,111,181,.85); }
.card-tipo-badge.municipal   { background:rgba(14,165,233,.85); }
.card-mes-badge { background:rgba(255,255,255,.22); border:1px solid rgba(255,255,255,.4); color:#fff; font-size:.63em; font-weight:800; letter-spacing:.5px; padding:3px 9px; border-radius:10px; text-transform:uppercase; flex-shrink:0; white-space:nowrap; }
.pc-body { padding:14px 16px 12px; flex:1; display:flex; flex-direction:column; gap:7px; }
.pc-top { display:flex; align-items:center; gap:8px; font-size:.7em; font-weight:700; text-transform:uppercase; letter-spacing:.3px; flex-wrap:wrap; }
.card-state { display:flex; align-items:center; gap:5px; }
.card-state.live { color:var(--green); }
.card-state.closed { color:var(--red); }
.card-dot { width:7px; height:7px; border-radius:50%; flex-shrink:0; }
.card-dot.green { background:var(--green); animation:pulse 2s ease infinite; }
.card-dot.red   { background:var(--red); }
.pc-loc { margin-left:auto; color:var(--text-l); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:110px; }
.pc-title { font-size:.93em; font-weight:700; color:var(--text); line-height:1.4; flex:1; }
.pc-dates { display:flex; gap:12px; font-size:.7em; color:var(--text-l); flex-wrap:wrap; padding-top:2px; }
.pc-dates span { display:flex; align-items:center; gap:3px; }
.pc-footer { margin-top:auto; padding-top:10px; border-top:1px solid var(--bg); display:flex; justify-content:space-between; align-items:center; }
.pc-votes { background:var(--blue-l); color:var(--blue); padding:4px 11px; border-radius:20px; font-weight:800; font-size:.76em; }
.pc-cta { color:var(--blue); font-weight:700; font-size:.82em; display:flex; align-items:center; gap:4px; transition:gap .18s; }
.pc:hover .pc-cta { gap:8px; }
.empty-state { grid-column:1/-1; text-align:center; padding:56px 20px; color:var(--text-l); }
.empty-icon { font-size:2.5em; margin-bottom:10px; }
.pag-wrap { display:flex; justify-content:center; gap:6px; flex-wrap:wrap; margin-top:24px; padding:0 20px; }
.pag-btn { min-width:42px; height:42px; display:inline-flex; align-items:center; justify-content:center; padding:0 10px; background:var(--surface); border:1.5px solid var(--border); border-radius:var(--r); font-weight:700; font-size:.86em; color:var(--text); cursor:pointer; transition:all .18s; }
.pag-btn:hover { border-color:var(--sky); color:var(--blue); background:var(--blue-l); }
.pag-btn.active { background:var(--blue); border-color:var(--blue); color:#fff; box-shadow:var(--sh-b); }
.pag-btn.disabled { opacity:.3; pointer-events:none; }

/* ══════ MÁS VOTADOS SLIDER ══════ */
.top-slider-outer { max-width:860px; margin:0 auto; position:relative; padding:0 52px; }
.top-slider-track-wrap {
  overflow:hidden;
  position:relative;
  -webkit-mask-image:linear-gradient(to right,transparent 0%,black 12%,black 88%,transparent 100%);
  mask-image:linear-gradient(to right,transparent 0%,black 12%,black 88%,transparent 100%);
}
.top-slider-track { display:flex; flex-wrap:nowrap; gap:14px; transition:transform .4s cubic-bezier(.4,0,.2,1); padding:6px 4px 12px; will-change:transform; }
.top-card { flex:0 0 162px; min-width:162px; background:var(--surface); border:1.5px solid var(--border); border-radius:16px; padding:16px 12px; text-align:center; box-shadow:var(--sh); transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease; }
.top-card:hover { transform:translateY(-5px); box-shadow:var(--sh-l); border-color:var(--blue); }
.top-rank { display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; border-radius:8px; font-size:.82em; font-weight:900; margin-bottom:6px; }
.rank-1-bg { background:var(--amber-l); color:var(--amber); }
.rank-2-bg { background:var(--bg); color:var(--text-l); }
.rank-3-bg { background:rgba(249,115,22,.1); color:#fb923c; }
.rank-n-bg { background:var(--blue-l); color:var(--blue); }
.top-photo { width:66px; height:66px; border-radius:50%; object-fit:cover; margin:4px auto 6px; border:3px solid var(--border); display:block; }
.top-party { height:24px; width:auto; max-width:46px; object-fit:contain; margin:2px auto 4px; display:block; }
.top-name { font-weight:700; font-size:.83em; color:var(--text); line-height:1.3; margin:4px 0 6px; }
.top-bar-bg { height:5px; background:var(--border); border-radius:4px; overflow:hidden; margin-bottom:4px; }
.top-bar { height:100%; border-radius:4px; background:linear-gradient(90deg,var(--blue),var(--sky)); animation:barGrow 1.4s cubic-bezier(.22,.61,.36,1) both; }
.top-pct { font-size:1.05em; font-weight:900; color:var(--blue); }
.top-votes { font-size:.69em; color:var(--text-l); margin-top:2px; }
.top-dist { font-size:.67em; color:var(--text-l); margin-top:5px; padding-top:6px; border-top:1px solid var(--border); }
.top-cta-btn { display:block; margin-top:10px; background:var(--blue); color:#fff; padding:7px 0; border-radius:20px; font-size:.74em; font-weight:700; text-decoration:none; transition:background .2s; }
.top-cta-btn:hover { background:var(--sky); }
.top-arrow { position:absolute; top:50%; transform:translateY(-50%); width:38px; height:38px; border-radius:50%; background:var(--surface); border:1.5px solid var(--border); display:flex; align-items:center; justify-content:center; font-size:1.2em; color:var(--text-m); cursor:pointer; z-index:20; box-shadow:var(--sh-m); transition:all .2s; }
.top-arrow:hover { background:var(--blue); color:#fff; border-color:var(--blue); box-shadow:var(--sh-b); }
.top-prev { left:0; }
.top-next { right:0; }
.top-dots { display:flex; justify-content:center; align-items:center; gap:7px; margin-top:14px; min-height:14px; }
.top-dot { width:7px; height:7px; border-radius:50%; background:var(--border2); cursor:pointer; transition:all .22s; border:none; padding:0; flex-shrink:0; }
.top-dot.active { background:var(--blue); width:22px; border-radius:4px; }

/* ══════ MÁS VOTADOS GRID (voted-row section) ══════ */
.voted-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.voted-hero-card { background:linear-gradient(145deg,var(--blue-d),var(--blue)); border-radius:20px; overflow:hidden; position:relative; padding:26px; color:#fff; box-shadow:var(--sh-l); display:flex; flex-direction:column; justify-content:flex-end; min-height:290px; }
.voted-hero-card::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse at 80% 20%,rgba(255,255,255,.18),transparent 55%); }
.voted-rank-1 { position:absolute; top:16px; right:16px; font-size:2em; filter:drop-shadow(0 3px 6px rgba(0,0,0,.2)); }
.voted-photo-big { width:82px; height:82px; border-radius:50%; object-fit:cover; border:4px solid rgba(255,255,255,.35); box-shadow:0 6px 20px rgba(0,0,0,.2); margin-bottom:12px; position:relative; z-index:1; }
.voted-hero-name { font-family:'Syne',sans-serif; font-size:1.4em; font-weight:800; margin-bottom:3px; position:relative; z-index:1; }
.voted-hero-party { font-size:.82em; color:rgba(255,255,255,.65); margin-bottom:12px; position:relative; z-index:1; }
.voted-hero-pct { font-size:2.2em; font-weight:900; color:#fff; line-height:1; margin-bottom:7px; position:relative; z-index:1; }
.voted-bar-track { height:7px; background:rgba(255,255,255,.2); border-radius:4px; position:relative; z-index:1; }
.voted-bar-fill { height:100%; border-radius:4px; background:#fff; animation:barGrow 1.5s cubic-bezier(.22,.61,.36,1) both; }
.voted-list { display:flex; flex-direction:column; gap:10px; }
.voted-row { display:flex; align-items:center; gap:12px; background:var(--surface); border:1.5px solid var(--border); border-radius:var(--r-l); padding:12px 14px; transition:all .22s; text-decoration:none; color:var(--text); min-height:52px; }
.voted-row:hover { border-color:var(--sky); box-shadow:var(--sh-m); transform:translateX(3px); }
.voted-row-rank { font-size:1.1em; width:22px; flex-shrink:0; text-align:center; }
.voted-row-photo { width:44px; height:44px; border-radius:50%; object-fit:cover; flex-shrink:0; border:2px solid var(--border); }
.voted-row-info { flex:1; min-width:0; }
.voted-row-name { font-weight:700; font-size:.92em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.voted-row-party { font-size:.76em; color:var(--text-l); }
.voted-row-bar { height:3px; background:var(--border); border-radius:2px; margin-top:5px; }
.voted-row-bar-fill { height:100%; border-radius:2px; background:linear-gradient(90deg,var(--blue),var(--sky)); }
.voted-row-right { text-align:right; flex-shrink:0; }
.voted-row-pct { font-size:1em; font-weight:900; color:var(--blue); }
.voted-row-v { font-size:.7em; color:var(--text-l); }

/* ══════ ZONAS ══════ */
.zones-section { max-width:1320px; margin:0 auto; padding:0 20px; }
.zone-tabs { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:20px; }
.zone-tab { padding:9px 18px; border-radius:20px; font-size:.84em; font-weight:700; border:1.5px solid var(--border); background:var(--surface); color:var(--text-m); cursor:pointer; transition:all .18s; min-height:42px; display:flex; align-items:center; }
.zone-tab:hover { background:var(--blue-l); color:var(--blue); border-color:var(--border2); }
.zone-tab.active { color:#fff; border-color:transparent; box-shadow:var(--sh-m); }
.zone-tab[data-zone="Lima Centro"].active { background:#6366f1; }
.zone-tab[data-zone="Lima Norte"].active  { background:#ef4444; }
.zone-tab[data-zone="Lima Sur"].active    { background:var(--green); }
.zone-tab[data-zone="Lima Este"].active   { background:var(--amber); }
.zone-tab[data-zone="Callao"].active      { background:var(--blue-v); }
.zone-tab[data-zone="todas"].active, .zone-tab[data-zone="todos"].active { background:var(--blue); }
.zona-ver-mas { display:flex; align-items:center; justify-content:center; gap:8px; padding:11px 24px; background:var(--blue-l); border:1.5px solid var(--border2); color:var(--blue); border-radius:20px; font-weight:700; font-size:.88em; cursor:pointer; transition:all .22s; margin:18px auto 0; width:fit-content; }
.zona-ver-mas:hover { background:var(--blue); color:#fff; border-color:var(--blue); box-shadow:var(--sh-b); }
.zona-empty { text-align:center; padding:36px; color:var(--text-l); background:var(--surface); border:2px dashed var(--border2); border-radius:var(--r-l); }

/* ══════ PREMIUM PROMO ══════ */
.premium-strip { background:linear-gradient(135deg,rgba(251,191,36,.1),rgba(245,158,11,.05)); border:1px solid rgba(251,191,36,.25); border-radius:var(--r-xl); padding:18px 24px; display:flex; align-items:center; gap:20px; flex-wrap:wrap; }
.premium-strip-text h4 { font-weight:800; color:#fbbf24; font-size:.95em; margin-bottom:3px; }
.premium-strip-text p { font-size:.8em; color:#d4a847; line-height:1.5; }
.btn-premium { display:inline-flex; align-items:center; gap:7px; background:linear-gradient(135deg,#d97706,#b45309); color:#fff; padding:10px 20px; border-radius:var(--r-xl); font-weight:800; font-size:.87em; box-shadow:0 4px 14px rgba(217,119,6,.25); transition:all .22s; white-space:nowrap; flex-shrink:0; text-decoration:none; }
.btn-premium:hover { transform:translateY(-2px); box-shadow:0 8px 22px rgba(217,119,6,.35); }

/* ══════ PREMIUM MODAL ══════ */
.prem-overlay{display:none;position:fixed;inset:0;z-index:4000;background:rgba(0,0,0,.78);backdrop-filter:blur(6px);padding:10px;overflow-y:auto;align-items:center;justify-content:center}
.prem-overlay.open{display:flex;animation:fadeIn .2s ease}
.prem-modal{background:var(--surface);border-radius:18px;max-width:420px;width:100%;max-height:calc(100vh - 20px);overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.3);position:relative;animation:fadeUp .25s ease;margin:auto}
.prem-modal-head{background:linear-gradient(135deg,#d97706,#b45309);padding:14px 16px 12px;text-align:center;color:#fff;position:relative}
.prem-close{position:absolute;top:9px;right:9px;width:26px;height:26px;background:rgba(255,255,255,.2);border:none;border-radius:50%;color:#fff;font-size:.95em;cursor:pointer;display:flex;align-items:center;justify-content:center}
.prem-close:hover{background:rgba(255,255,255,.35)}
.prem-icon{font-size:1.5em;margin-bottom:3px}
.prem-modal-title{font-family:"Syne",sans-serif;font-size:1.05em;font-weight:800;margin-bottom:2px;line-height:1.2}
.prem-price{font-size:.8em;font-weight:800;background:rgba(255,255,255,.22);border-radius:20px;padding:2px 12px;display:inline-block;margin-top:4px}
.prem-modal-body{padding:14px}
.prem-before-after{display:flex;align-items:center;gap:8px;margin-bottom:12px;padding:10px 12px;background:var(--bg);border-radius:var(--r);font-size:.78em}
.prem-side{text-align:center;flex:1}
.prem-side-label{font-size:.65em;font-weight:800;text-transform:uppercase;letter-spacing:.8px;margin-bottom:5px}
.prem-side-label.basic{color:var(--text-l)}.prem-side-label.premium{color:#d97706}
.prem-avatar{width:38px;height:38px;border-radius:50%;background:var(--border);margin:0 auto 4px;display:flex;align-items:center;justify-content:center;font-size:.95em;border:2px solid var(--border2)}
.prem-avatar.gold{border-color:#fbbf24;background:var(--amber-l)}
.prem-badge-mini{background:#fbbf24;color:#92400e;font-size:.58em;font-weight:800;padding:1px 6px;border-radius:8px;margin-top:2px;display:inline-block}
.prem-arrow{font-size:1.2em;color:var(--text-l);flex-shrink:0}
.prem-perks{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:10px}
.prem-perk{display:flex;align-items:center;gap:7px;padding:8px 10px;background:var(--bg);border-radius:var(--r);border-left:3px solid var(--border)}
.prem-perk:nth-child(1){border-color:var(--green)}.prem-perk:nth-child(2){border-color:var(--blue)}.prem-perk:nth-child(3){border-color:#7c3aed}.prem-perk:nth-child(4){border-color:var(--amber)}
.prem-perk-ico{font-size:1em;flex-shrink:0}
.prem-perk-text strong{display:block;font-weight:700;font-size:.76em;color:var(--text);line-height:1.1}
.prem-perk-text span{font-size:.7em;color:var(--text-m);line-height:1.2;display:block}
.btn-prem-wa{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px;background:linear-gradient(135deg,#25D366,#1da851);color:#fff;border:none;border-radius:var(--r-l);font-size:.9em;font-weight:800;font-family:inherit;cursor:pointer;box-shadow:0 4px 14px rgba(37,211,102,.25);transition:all .22s}
.btn-prem-wa:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(37,211,102,.35)}
.prem-note{text-align:center;font-size:.68em;color:var(--text-l);margin-top:6px}
  .prem-modal { border-radius:14px; }
  .prem-modal-head { padding:12px 14px 10px; }
  .prem-icon { font-size:1.4em; margin-bottom:2px; }
  .prem-modal-title { font-size:.9em; }
  .prem-modal-body { padding:12px 12px; }
  .prem-before-after { padding:8px 10px; gap:8px; margin-bottom:10px; }
  .prem-avatar { width:36px; height:36px; font-size:.9em; }
  .prem-perks { grid-template-columns:1fr 1fr; gap:6px; margin-bottom:10px; }
  .prem-perk { padding:7px 8px; gap:6px; }
  .prem-perk-text strong { font-size:.73em; }
  .prem-perk-text span { font-size:.68em; }
  .btn-prem-wa { padding:11px; font-size:.88em; }
}

/* ══════ LEGAL ══════ */
.legal-box { max-width:1320px; margin:0 auto; padding:0 20px 32px; }
.legal-inner { background:linear-gradient(135deg,rgba(251,191,36,.07),rgba(245,158,11,.03)); border-radius:var(--r-xl); padding:22px 26px; border:1.5px solid rgba(251,191,36,.25); border-left:5px solid var(--amber); }
.legal-badge { display:inline-flex; align-items:center; gap:7px; margin-bottom:10px; background:rgba(251,191,36,.12); border:1px solid rgba(251,191,36,.3); color:#fbbf24; font-size:.7em; font-weight:800; padding:4px 12px; border-radius:20px; text-transform:uppercase; letter-spacing:1px; }
.legal-inner p { color:#d4a847; font-size:.83em; line-height:1.75; }
.legal-inner strong { color:#fbbf24; }

/* ══════ VOTAR PAGE ══════ */
.vote-wrap { max-width:780px; margin:28px auto; padding:0 18px 56px; }
.vote-hero-card { background:linear-gradient(150deg,var(--blue-d),var(--blue)); border-radius:20px; overflow:hidden; margin-bottom:20px; box-shadow:var(--sh-l); position:relative; }
.vote-hero-card::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse at 80% 30%,rgba(255,255,255,.15),transparent 55%); pointer-events:none; }
.vote-hero-top { position:relative; z-index:1; padding:22px 22px 0; }
.v-badge { display:inline-flex; align-items:center; gap:6px; padding:4px 13px; border-radius:20px; font-size:.73em; font-weight:800; letter-spacing:.8px; text-transform:uppercase; margin-bottom:10px; margin-right:6px; }
.vb-active { background:rgba(255,255,255,.22); border:1px solid rgba(255,255,255,.35); color:#fff; }
.vb-closed { background:rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.25); color:rgba(255,255,255,.85); }
.vb-future { background:rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.25); color:rgba(255,255,255,.85); }
.v-dot { width:6px; height:6px; border-radius:50%; background:currentColor; animation:pulse 2s infinite; }
.v-tipo-badge { display:inline-flex; align-items:center; gap:6px; padding:4px 13px; border-radius:20px; font-size:.73em; font-weight:800; letter-spacing:.5px; text-transform:uppercase; margin-bottom:8px; background:rgba(255,255,255,.2); border:1px solid rgba(255,255,255,.35); color:#fff; }
.vote-hero-q { color:#fff; font-family:'Syne',sans-serif; font-size:1.2em; font-weight:800; margin-bottom:10px; line-height:1.3; position:relative; z-index:1; }
.vote-hero-img { width:100%; height:auto; display:block; position:relative; z-index:1; }
.vote-hero-meta { display:flex; flex-wrap:wrap; gap:12px; padding:12px 22px 20px; color:rgba(255,255,255,.75); font-size:.8em; position:relative; z-index:1; }
.vote-hero-meta span { display:flex; align-items:center; gap:5px; }
.v-notice { background:var(--amber-l); border:1.5px solid #fcd34d; border-left:4px solid var(--amber); border-radius:var(--r-l); padding:13px 16px; margin-bottom:16px; color:#92400e; font-weight:600; font-size:.88em; display:flex; align-items:center; gap:9px; }
.v-msg { display:none; padding:12px 16px; border-radius:var(--r); margin-bottom:14px; font-weight:600; font-size:.88em; }
.v-msg.err { background:var(--red-l); color:var(--red); border:1px solid #fecaca; }

/* CANDIDATE CARDS */
.cands-list { display:flex; flex-direction:column; gap:10px; margin-bottom:18px; }
.cand-card-vote { display:grid; grid-template-columns:64px 1fr 82px; align-items:center; gap:16px; background:#fff; border:2px solid var(--border); border-radius:16px; padding:14px 16px; cursor:pointer; transition:all .25s ease; position:relative; overflow:visible; -webkit-tap-highlight-color:transparent; min-height:80px; user-select:none; }
.cand-card-vote::before { content:''; position:absolute; left:0; top:4px; bottom:4px; width:4px; border-radius:0 4px 4px 0; background:var(--sky); opacity:0; transition:opacity .2s; }
.cand-card-vote:hover { border-color:var(--blue); box-shadow:0 4px 20px rgba(124,58,237,.22); transform:translateX(3px); }
.cand-card-vote:hover::before { opacity:1; }
.cand-card-vote.sel { border-color:var(--green); background:linear-gradient(135deg,rgba(16,185,129,.08),var(--surface)); box-shadow:0 4px 18px rgba(5,150,105,.15); }
.cand-card-vote.sel::before { background:var(--green); opacity:1; }
.cand-card-vote input[type=radio] { display:none; }
.ccv-check { position:absolute; top:-11px; right:-8px; z-index:30; width:28px; height:28px; border-radius:50%; background:var(--green); border:3px solid #fff; box-shadow:0 3px 10px rgba(5,150,105,.4); display:flex; align-items:center; justify-content:center; color:#fff; font-size:12px; font-weight:900; opacity:0; transform:scale(0); transition:all .3s cubic-bezier(.68,-.55,.265,1.55); pointer-events:none; }
.cand-card-vote.sel .ccv-check { opacity:1; transform:scale(1); }
.ccv-foto { width:64px; height:64px; border-radius:50%; object-fit:cover; border:2.5px solid var(--border); display:block; transition:border-color .2s; }
.cand-card-vote.sel .ccv-foto { border-color:var(--green); }
.ccv-info { display:flex; flex-direction:column; gap:5px; min-width:0; }
.ccv-nombre { font-size:1em; font-weight:700; color:var(--text); line-height:1.25; display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
.ccv-star { color:var(--amber); font-size:.9em; }
.ccv-partido { display:flex; align-items:center; gap:7px; padding:4px 9px; background:var(--bg); border:1px solid var(--border); border-radius:10px; width:fit-content; max-width:100%; }
.ccv-partido-logosmall { height:22px; width:auto; max-width:30px; object-fit:contain; flex-shrink:0; }
.ccv-partido span { font-size:.78em; font-weight:600; color:var(--text-m); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:180px; }
.ccv-profile-btn { display:inline-flex; align-items:center; gap:4px; background:var(--blue-l); color:var(--blue); border:1.5px solid var(--border2); font-size:.72em; padding:4px 11px; border-radius:20px; font-weight:700; cursor:pointer; font-family:inherit; width:fit-content; transition:all .18s; margin-top:2px; }
.ccv-profile-btn:hover { background:var(--blue); color:#fff; border-color:var(--blue); }
.ccv-logo-wrap { width:82px; height:82px; display:flex; align-items:center; justify-content:center; background:var(--bg2); border:2px solid var(--border); border-radius:14px; padding:8px; flex-shrink:0; box-shadow:var(--sh-m); transition:all .25s; }
.cand-card-vote:hover .ccv-logo-wrap { border-color:var(--blue); box-shadow:0 4px 16px rgba(124,58,237,.25); transform:scale(1.04); }
.cand-card-vote.sel .ccv-logo-wrap { border-color:var(--green); }
.ccv-logo { width:100%; height:100%; object-fit:contain; display:block; }
.btn-vote { display:block; width:100%; padding:15px; border:none; border-radius:var(--r-l); font-size:1.02em; font-weight:900; font-family:inherit; background:linear-gradient(135deg,var(--blue),var(--sky)); color:#fff; box-shadow:var(--sh-b); cursor:pointer; transition:all .25s; min-height:52px; }
.btn-vote:hover { transform:translateY(-3px); box-shadow:0 14px 36px rgba(124,58,237,.5); }
.btn-vote:disabled { opacity:.6; cursor:not-allowed; transform:none; }

/* RESULTS */
.results-box { padding:2px 0; }
.r-title { text-align:center; font-family:'Syne',sans-serif; font-size:1.1em; font-weight:800; color:var(--text); margin-bottom:16px; padding-bottom:13px; border-bottom:2px solid var(--border); }
.r-item { padding:14px 16px; border-radius:16px; background:var(--surface); border:1.5px solid var(--border); margin-bottom:10px; }
.r-item.r1 { border-color:#fbbf24; background:linear-gradient(135deg,rgba(251,191,36,.07),var(--surface)); }
.r-item.r3 { border-color:#f97316; background:linear-gradient(135deg,rgba(249,115,22,.06),var(--surface)); }
.r-row { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; gap:10px; }
.r-left { display:flex; align-items:center; gap:12px; flex:1; min-width:0; }
.r-img-wrap { position:relative; flex-shrink:0; }
.r-img { width:44px; height:44px; border-radius:50%; object-fit:cover; border:2px solid var(--border); }
.r-item.r1 .r-img { width:54px; height:54px; border-color:#fbbf24; }
.r-medal { position:absolute; bottom:-5px; right:-5px; font-size:1.2em; filter:drop-shadow(0 2px 3px rgba(0,0,0,.2)); }
.r-info-col { display:flex; flex-direction:column; gap:5px; min-width:0; flex:1; }
.r-name { font-weight:800; font-size:.97em; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; line-height:1.2; }
.r-partido-row { display:flex; align-items:center; gap:7px; padding:4px 9px; background:var(--bg); border:1px solid var(--border); border-radius:8px; width:fit-content; max-width:100%; }
.r-partido-logo { height:26px; width:auto; max-width:42px; object-fit:contain; flex-shrink:0; }
.r-partido-name { font-size:.74em; font-weight:700; color:var(--text-m); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:130px; }
.r-right-col { display:flex; align-items:center; gap:12px; flex-shrink:0; }
.r-logo-big-wrap { width:72px; height:72px; display:flex; align-items:center; justify-content:center; background:var(--bg2); border:2px solid var(--border); border-radius:12px; padding:6px; box-shadow:var(--sh-m); flex-shrink:0; }
.r-item.r1 .r-logo-big-wrap { width:80px; height:80px; border-color:#fbbf24; }
.r-logo-big { width:100%; height:100%; object-fit:contain; }
.r-pct-box { text-align:right; min-width:52px; }
.r-pct { display:block; font-size:1.25em; font-weight:900; line-height:1; }
.r-item.r1 .r-pct { font-size:1.4em; }
.r-ct { font-size:.72em; color:var(--text-l); margin-top:2px; display:block; }
.r-bar-bg { height:9px; background:var(--border); border-radius:8px; overflow:hidden; }
.r-bar { height:100%; border-radius:8px; transition:width 1.6s cubic-bezier(.22,.61,.36,1); }
.r-item.r1 .r-bar { background:linear-gradient(90deg,#d97706,#fbbf24); }
.r-item.r2 .r-bar { background:linear-gradient(90deg,#64748b,#94a3b8); }
.r-item.r3 .r-bar { background:linear-gradient(90deg,#ea580c,#fdba74); }
.r-gen .r-bar { background:linear-gradient(90deg,var(--blue),var(--sky)); }
.r-ap  .r-bar { background:linear-gradient(90deg,#059669,#10b981) !important; }
.r-des .r-bar { background:linear-gradient(90deg,var(--red),#ef4444) !important; }
.r-nop .r-bar { background:linear-gradient(90deg,#475569,#64748b) !important; }
.r-total { text-align:center; color:var(--text-l); font-size:.82em; margin-top:14px; padding-top:12px; border-top:1px solid var(--border); }

/* Ficha técnica */
.ficha-tecnica { background:linear-gradient(135deg,rgba(124,58,237,.1),rgba(109,40,217,.04)); border-radius:var(--r-xl); padding:22px 26px; margin-top:22px; border:1.5px solid var(--border2); border-left:5px solid var(--blue); }
.ficha-t-badge { display:inline-flex; align-items:center; gap:7px; margin-bottom:10px; background:rgba(124,58,237,.18); border:1px solid var(--border2); color:var(--sky); font-size:.7em; font-weight:800; padding:4px 12px; border-radius:20px; text-transform:uppercase; letter-spacing:1px; }
.ficha-tecnica h4 { font-family:'Syne',sans-serif; color:var(--sky); font-size:.95em; margin-bottom:10px; }
.ficha-tecnica p { color:var(--text-m); font-size:.82em; line-height:1.75; margin-bottom:8px; }
.ficha-tecnica strong { color:var(--sky); }

/* Share */
.share-sec { background:linear-gradient(135deg,var(--blue-l),var(--sky-l)); border:1.5px solid var(--border2); border-radius:var(--r-xl); padding:22px; text-align:center; margin-top:20px; }
.share-title { font-family:'Syne',sans-serif; font-size:1em; font-weight:800; color:var(--text); margin-bottom:4px; }
.share-sub { font-size:.82em; color:var(--text-m); margin-bottom:18px; }
.share-btns { display:flex; justify-content:center; gap:8px; flex-wrap:wrap; }
.s-btn { display:inline-flex; align-items:center; gap:7px; padding:10px 16px; border-radius:20px; font-weight:700; font-size:.82em; transition:all .22s; border:none; cursor:pointer; font-family:inherit; min-height:42px; }
.s-btn:hover { transform:translateY(-2px); box-shadow:0 8px 20px rgba(0,0,0,.15); }
.s-wa  { background:#25D366; color:#fff; }
.s-fb  { background:#1877F2; color:#fff; }
.s-tw  { background:#000;    color:#fff; }
.s-tg  { background:#0088cc; color:#fff; }
.s-cp  { background:var(--blue-l); color:var(--blue); border:1.5px solid var(--border2); }
.s-cp:hover { background:var(--blue); color:#fff; }
.float-share { position:fixed; right:18px; bottom:76px; z-index:800; display:flex; flex-direction:column; align-items:flex-end; gap:9px; }
.float-toggle { width:50px; height:50px; border-radius:50%; background:linear-gradient(135deg,var(--blue),var(--sky)); border:none; color:#fff; font-size:1.15em; box-shadow:var(--sh-b); cursor:pointer; transition:all .22s; display:flex; align-items:center; justify-content:center; }
.float-toggle:hover { transform:scale(1.1); }
.float-menu { display:flex; flex-direction:column; gap:7px; align-items:flex-end; transform:scale(0); transform-origin:bottom right; transition:transform .25s cubic-bezier(.34,1.56,.64,1); opacity:0; }
.float-menu.open { transform:scale(1); opacity:1; }
.float-item { display:flex; align-items:center; gap:9px; background:var(--surface); padding:8px 14px; border-radius:20px; font-weight:700; font-size:.8em; color:var(--text); box-shadow:var(--sh-m); border:1.5px solid var(--border); white-space:nowrap; text-decoration:none; transition:all .18s; min-height:42px; }
.float-item:hover { transform:translateX(-3px); box-shadow:var(--sh-l); }
.f-ico { width:26px; height:26px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:.9em; flex-shrink:0; }
.conf-box { position:fixed; top:0; left:0; width:100%; height:100%; pointer-events:none; z-index:9999; overflow:hidden; }
.conf-p { position:absolute; border-radius:2px; animation:confFall linear forwards; }

/* ══════ PROFILE MODAL ══════ */
.pm-overlay { display:none; position:fixed; inset:0; z-index:3000; background:rgba(0,0,0,.75); backdrop-filter:blur(6px); align-items:center; justify-content:center; padding:20px; overflow-y:auto; }
.pm-overlay.open { display:flex; animation:fadeIn .22s ease; }
.pm-modal { background:var(--surface); border-radius:var(--r-xl); max-width:680px; width:100%; max-height:88vh; overflow-y:auto; box-shadow:0 24px 80px rgba(0,0,0,.22); position:relative; animation:fadeUp .28s ease; }
.pm-hero { background:linear-gradient(135deg,var(--blue),var(--sky)); padding:28px; text-align:center; position:relative; }
.pm-close-btn { position:absolute; top:14px; right:14px; width:36px; height:36px; background:rgba(255,255,255,.2); border:1px solid rgba(255,255,255,.3); border-radius:50%; color:#fff; font-size:1.1em; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:all .18s; }
.pm-close-btn:hover { background:rgba(255,255,255,.35); }
.pm-photo { width:96px; height:96px; border-radius:50%; object-fit:cover; border:4px solid rgba(255,255,255,.3); margin:0 auto 13px; box-shadow:0 6px 20px rgba(0,0,0,.2); }
.pm-premium { display:inline-flex; align-items:center; gap:5px; background:linear-gradient(135deg,#d97706,#fbbf24); color:#fff; font-size:.68em; font-weight:800; padding:3px 12px; border-radius:20px; margin-bottom:9px; }
.pm-name { font-family:'Syne',sans-serif; font-size:1.45em; font-weight:800; color:#fff; margin-bottom:4px; }
.pm-party { font-size:.85em; color:rgba(255,255,255,.7); margin-bottom:16px; }
.pm-body { padding:22px; }
.pm-sec { font-size:.7em; font-weight:800; color:var(--text-l); text-transform:uppercase; letter-spacing:1px; margin-bottom:12px; padding-bottom:8px; border-bottom:2px solid var(--border); display:flex; align-items:center; gap:6px; }
.pm-yt { position:relative; padding-bottom:56.25%; border-radius:var(--r-l); overflow:hidden; margin-bottom:20px; box-shadow:var(--sh-m); }
.pm-yt iframe { position:absolute; top:0; left:0; width:100%; height:100%; }
.pm-bio { font-size:.93em; line-height:1.8; color:var(--text-m); }
.pm-actions { display:flex; justify-content:center; flex-wrap:wrap; gap:10px; padding:16px 22px; }
.pm-share { display:flex; justify-content:center; gap:8px; flex-wrap:wrap; padding:0 22px 20px; }
.pm-placeholder { background:var(--bg); border-radius:var(--r-l); padding:24px; text-align:center; margin-bottom:16px; }
.pm-placeholder p { font-weight:700; color:var(--text-m); margin:6px 0 4px; }
.pm-placeholder small { font-size:.8em; color:var(--text-l); }

/* ══════ PERFIL PREMIUM ══════ */
.profile-hero { background:linear-gradient(145deg,var(--blue-d),var(--blue)); padding:56px 24px 110px; position:relative; overflow:hidden; }
.profile-wrap { max-width:900px; margin:-76px auto 56px; padding:0 18px; position:relative; z-index:5; }
.profile-card { background:var(--surface); border-radius:20px; overflow:hidden; box-shadow:var(--sh-l); border:1px solid var(--border); }
.profile-head { text-align:center; padding:40px 24px 26px; background:linear-gradient(180deg,var(--bg),var(--surface)); border-bottom:1px solid var(--border); }
.profile-hero-identity { display:flex; align-items:center; justify-content:center; gap:28px; margin-bottom:18px; flex-wrap:wrap; }
.profile-ring { position:relative; width:160px; height:160px; flex-shrink:0; margin:0; }
.profile-pic { width:100%; height:100%; border-radius:50%; object-fit:cover; border:5px solid #fff; box-shadow:var(--sh-m); }
.profile-party-logo-big-wrap { width:140px; height:140px; background:var(--surface); border:3px solid var(--border); border-radius:24px; padding:12px; display:flex; align-items:center; justify-content:center; box-shadow:var(--sh-l); flex-shrink:0; transition:transform .25s; }
.profile-party-logo-big-wrap:hover { transform:scale(1.04); }
.profile-party-logo-big { width:100%; height:100%; object-fit:contain; }
.profile-party-row-head { display:flex; align-items:center; justify-content:center; gap:10px; margin-top:8px; padding:8px 18px; background:var(--bg); border:1.5px solid var(--border); border-radius:20px; width:fit-content; margin-left:auto; margin-right:auto; }
.profile-party-logo-inline-head { height:30px; width:auto; max-width:48px; object-fit:contain; }
.profile-premium-badge { display:inline-flex; align-items:center; gap:5px; background:linear-gradient(135deg,#d97706,#fbbf24); color:#fff; font-size:.7em; font-weight:800; padding:3px 12px; border-radius:20px; margin-bottom:10px; }
.profile-name { font-family:'Syne',sans-serif; font-size:1.8em; font-weight:800; color:var(--text); margin:0 0 5px; }
.profile-party-name { font-size:.92em; color:var(--text-m); }
.profile-body { padding:32px 28px; }
.profile-section-title { font-size:.7em; font-weight:800; color:var(--text-l); text-transform:uppercase; letter-spacing:1px; margin-bottom:12px; padding-bottom:8px; border-bottom:2px solid var(--border); display:flex; align-items:center; gap:7px; }
.video-embed { position:relative; padding-bottom:56.25%; border-radius:var(--r-l); overflow:hidden; margin-bottom:26px; box-shadow:var(--sh-m); }
.video-embed iframe { position:absolute; top:0; left:0; width:100%; height:100%; }
.profile-html-content { font-size:.95em; line-height:1.85; color:var(--text-m); }
.share-btn { display:inline-flex; align-items:center; gap:7px; padding:9px 16px; border-radius:20px; font-weight:700; font-size:.82em; transition:all .22s; min-height:40px; }
.share-btn.whatsapp { background:#25D366; color:#fff; }
.share-btn.facebook  { background:#1877F2; color:#fff; }
.share-btn.telegram  { background:#0088cc; color:#fff; }
.share-btn:hover { transform:translateY(-2px); box-shadow:0 6px 18px rgba(0,0,0,.15); }

/* ══════ FOOTER ══════ */
.footer { background:var(--slate); padding:48px 24px 24px; border-top:3px solid var(--blue); }
.footer-inner { max-width:1320px; margin:0 auto; }
.footer-top { display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:44px; margin-bottom:44px; }
.f-brand h3 { font-family:'Syne',sans-serif; font-size:1.05em; color:#fff; margin-bottom:8px; }
.f-brand p { font-size:.83em; line-height:1.75; color:#94a3b8; margin-bottom:18px; }
.f-socials { display:flex; gap:8px; }
.f-soc { width:36px; height:36px; background:rgba(255,255,255,.08); border-radius:8px; display:flex; align-items:center; justify-content:center; transition:all .18s; }
.f-soc:hover { background:var(--blue); transform:translateY(-2px); }
.f-soc svg { width:15px; height:15px; fill:#64748b; transition:fill .18s; }
.f-soc:hover svg { fill:#fff; }
.f-col h4 { font-size:.7em; font-weight:800; color:#e2e8f0; text-transform:uppercase; letter-spacing:1px; margin-bottom:14px; }
.f-col ul { list-style:none; display:flex; flex-direction:column; gap:9px; }
.f-col ul li a { color:#94a3b8; font-size:.83em; transition:color .18s; display:flex; align-items:center; gap:6px; }
.f-col ul li a:hover { color:#e2e8f0; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.08); padding-top:20px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; }
.f-legal { font-size:.72em; color:#64748b; line-height:1.65; max-width:650px; }
.f-wa { display:inline-flex; align-items:center; gap:7px; background:#25D366; color:#fff; padding:9px 20px; border-radius:20px; font-weight:700; font-size:.83em; transition:all .18s; }
.f-wa:hover { transform:scale(1.04); background:#22c55e; }

/* ══════ RESPONSIVE ══════ */
@media (max-width:1100px) {
  .nav-links, .nav-socials { display:none; }
  .nav-burger { display:flex; }
  .hero-content { grid-template-columns:1fr; }
  .hero-card { display:none; }
  .footer-top { grid-template-columns:1fr 1fr; gap:28px; }
}
@media (max-width:960px) {
  .polls-grid, .zone-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:900px) {
  .voted-grid { grid-template-columns:1fr; }
  .top-slider-outer { max-width:100%; padding:0 44px; }
}
@media (max-width:768px) {
  .sec { padding:36px 16px; }
  .sec-sm { padding:0 16px 28px; }
  .hero { padding-top:100px; }
  .hero-content { padding:36px 18px 0; }
  .hero-title { font-size:2em; letter-spacing:-1px; }
  .hero-sub { font-size:.95em; }
  .hero-stats-in { flex-wrap:wrap; }
  .h-stat { min-width:50%; border-bottom:1px solid rgba(255,255,255,.1); }
  .h-stat:nth-child(2n) { border-right:none !important; }
  .geo-row { flex-direction:column; }
  .footer-top { grid-template-columns:1fr; gap:24px; }
  .vote-wrap { padding:0 14px 48px; margin-top:14px; }
  .profile-body { padding:22px 18px; }
  .cand-card-vote { grid-template-columns:56px 1fr 70px; gap:12px; padding:12px; }
  .ccv-foto { width:56px; height:56px; }
  .ccv-logo-wrap { width:70px; height:70px; }
  .profile-ring { width:120px; height:120px; }
  .profile-party-logo-big-wrap { width:100px; height:100px; padding:10px; }
  .date-filter-row { flex-direction:column; align-items:stretch; }
  .premium-strip { flex-direction:column; align-items:flex-start; }
}
@media (max-width:600px) {
  .polls-grid, .zone-grid { grid-template-columns:1fr !important; gap:13px !important; }
  .hero-ctas { flex-direction:column; align-items:stretch; }
  .btn-primary, .btn-ghost { justify-content:center; }
  .ticker { display:none; }
  .zone-tabs { gap:6px; }
  .zone-tab { padding:8px 13px; font-size:.82em; }
  .tab-pills { flex-wrap:wrap; }
  .share-btns, .pm-share, .pm-actions { gap:6px; }
  .s-btn { font-size:.79em; padding:9px 12px; }
  .top-card { flex:0 0 138px; min-width:138px; padding:12px 8px; }
  .top-arrow { width:32px; height:32px; font-size:1em; }
  .top-slider-outer { padding:0 36px; }
  .profile-hero-identity { gap:16px; }
}
