:root{
  --bg:#0b0c10;
  --card:#111218;
  --elev:#161823;
  --text:#f5f7fa;
  --muted:#a9b0be;
  --accent:#6ae3ff;
  --brand:#59f;
  --ring: 0 0 0 .2rem rgba(102,153,255,.35);
  --radius:14px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif;
  color:var(--text);
  background: radial-gradient(1200px 600px at 50% -10%, #1c1f2b 0%, #0b0c10 60%);
}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto;display:block}

/* Header */
.site-header{
  display:flex;justify-content:space-between;align-items:center;
  padding:12px 20px;border-bottom:1px solid #1f2230;background:transparent;backdrop-filter:saturate(160%) blur(8px);
  position:sticky;top:0;z-index:10;
}
.brand{display:flex;gap:.6rem;align-items:center;font-weight:600;letter-spacing:.2px}
.nav{display:flex;gap:1rem}
.nav a{padding:8px 10px;border-radius:10px;color:var(--muted)}
.nav a[aria-current="page"]{background:var(--elev);color:var(--text)}

/* Hero */
.hero{max-width:900px;margin:60px auto 20px;padding:0 16px;text-align:center}
.hero-title{font-size:clamp(1.6rem,2.4vw,2.4rem);font-weight:700;margin:0 0 18px}
.accent{color:var(--accent)}
.ask-form{margin:0 auto;max-width:900px}
.ask-input-wrap{
  display:flex;gap:10px;align-items:center;
  background:var(--card);border:1px solid #202334;border-radius:999px;padding:10px;
  box-shadow: 0 10px 30px rgba(0,0,0,.25), inset 0 1px 0 rgba(255,255,255,.03);
}
.ask-input-wrap:focus-within{outline:none;box-shadow:var(--ring)}
.ask-input-wrap input{
  flex:1;background:transparent;border:none;color:var(--text);font-size:1rem;padding:10px 14px;outline:none;
}
.btn-primary{
  background:linear-gradient(180deg, #6aa9ff, #3b7cff);
  color:#fff;border:none;padding:12px 18px;border-radius:12px;font-weight:600;cursor:pointer;
}
.btn-primary:hover{filter:brightness(1.05)}
.ask-hint{color:var(--muted);font-size:.9rem;margin:.6rem 0 0}

/* Ad slots */
.ad-slot{display:flex;flex-direction:column;align-items:center;margin:24px 0}
.ad-label{font-size:.75rem;color:#a9b0be;margin-bottom:6px;letter-spacing:.02em}
.party-card--ad{justify-content:center;min-height:160px}

/* Parties grid */
.parties{max-width:1100px;margin:10px auto 60px;padding:0 16px}
.parties h2{margin:10px 0 16px}
.parties-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px
}
.party-card{
  display:flex;flex-direction:column;align-items:center;gap:10px;
  background:var(--elev);border:1px solid #202334;border-radius:var(--radius);
  padding:16px;transition:transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}
.party-card:hover{transform:translateY(-2px);border-color:#2b3350;box-shadow:0 12px 24px rgba(0,0,0,.25)}
.party-card img{height:64px;width:auto}
.party-name{font-weight:600;text-align:center}

/* Pages */
.page{max-width:1000px;margin:40px auto;padding:0 16px}
.filter-form input{
  width:100%;max-width:520px;background:var(--card);border:1px solid #202334;border-radius:12px;color:var(--text);
  padding:12px 14px;outline:none
}
.filter-form input:focus{box-shadow:var(--ring)}

/* Contact */
.contact-form{display:grid;gap:12px;max-width:600px}
.contact-form label{display:grid;gap:6px;color:#d9deea}
.contact-form input,.contact-form textarea{
  background:var(--card);border:1px solid #202334;border-radius:12px;color:var(--text);padding:12px
}
.form-hint{color:var(--muted);font-size:.9rem}

/* Footer */
.site-footer{border-top:1px solid #1f2230;padding:16px 20px;color:var(--muted);text-align:center}

/* Chat */
.chat-fab{
  position:fixed; right:18px; bottom:18px; z-index:50;
  border:none; border-radius:999px; padding:12px 16px; cursor:pointer;
  background:#3b7cff; color:#fff; font-weight:600;
}
.chat-panel{
  position:fixed; right:18px; bottom:76px; width:min(380px, 92vw);
  background:var(--elev); border:1px solid #202334; border-radius:14px; z-index:50;
  box-shadow:0 20px 50px rgba(0,0,0,.35); display:flex; flex-direction:column; overflow:hidden;
}
.chat-header{ display:flex; justify-content:space-between; align-items:center;
  padding:10px 12px; background:#121524; border-bottom:1px solid #202334;
}
.chat-log{max-height:50vh; overflow:auto; padding:10px 12px; display:flex; flex-direction:column; gap:10px}
.msg{padding:10px 12px; border-radius:12px}
.msg--user{align-self:flex-end; background:#2a3152}
.msg--bot{align-self:flex-start; background:#1a1e33}
.citations{font-size:.85rem; color:var(--muted); padding:6px 12px 12px}
.chat-form{display:flex; gap:8px; padding:10px; border-top:1px solid #202334}
.chat-form input{flex:1; background:var(--card); border:1px solid #202334; border-radius:12px; color:var(--text); padding:10px 12px}
.chat-note{font-size:.8rem; color:var(--muted); padding:0 12px 10px}
.badge-check{
  margin-left:8px; padding:6px 10px; border-radius:10px; border:1px solid #2a3152;
  background:#121524; color:#dbe4ff; cursor:pointer; font-size:.9rem;
}
.badge{
  margin-left:8px; padding:4px 10px; border-radius:999px; font-size:.85rem; border:1px solid #2a3152;
}
.badge--idle{ background:#121524; color:#a9b0be; }
.badge--ok{ background:#153a1a; color:#81f495; border-color:#1f6a29; }
.badge--err{ background:#3a1515; color:#ffb3b3; border-color:#6a1f1f; }
.ad-wrap {
  max-width: 1100px;
  margin: 0 auto;
  padding: 8px 12px 0;
}
.ad-wrap .ad-label {
  display: inline-block;
  font-size: 12px;
  color: #9aa3b2;
  margin-bottom: 6px;
}
.ad-wrap--top {
  margin-top: 8px;
}

/* Ayuda a que no rompa el layout en móviles */
@media (max-width: 640px) {
  .ad-wrap { padding: 6px 10px 0; }
}
