@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;600&family=IBM+Plex+Sans:wght@400;500;600&display=swap');
:root{
  --bg:#0d1117;--surface:#161b22;--border:#30363d;
  --accent:#f0883e;--blue:#58a6ff;--text:#c9d1d9;--dim:#8b949e;
  --red:#f85149;--green:#3fb950;--yellow:#d29922;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{overflow-x:hidden;}
body{font-family:'IBM Plex Sans',sans-serif;background:var(--bg);color:var(--text);min-height:100vh;padding-bottom:60px;overflow-x:hidden;}
header{background:var(--surface);border-bottom:1px solid var(--border);padding:16px 28px;display:flex;align-items:center;gap:14px;position:sticky;top:0;z-index:10;}
header a{display:flex;align-items:center;gap:14px;min-width:0;flex:1;}
header a>div{min-width:0;}
header h1{overflow-wrap:break-word;}
.logo-svg{flex-shrink:0;line-height:0;}
.logo-svg svg{width:160px;height:auto;display:block;}
header h1{font-size:15px;font-weight:600;}
header p{font-size:12px;color:var(--dim);margin-top:2px;}
.main{max-width:1340px;margin:28px auto;padding:0 20px;}
.search-bar{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:18px 22px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:24px;}
.search-bar label{font-size:11px;font-family:'IBM Plex Mono',monospace;color:var(--dim);text-transform:uppercase;letter-spacing:1px;white-space:nowrap;}
.search-bar input{background:var(--bg);border:1px solid var(--border);color:var(--text);font-family:'IBM Plex Mono',monospace;font-size:14px;padding:8px 12px;border-radius:6px;flex:1;min-width:180px;outline:none;}
.search-bar input:focus{border-color:var(--blue);}
.btn{padding:8px 18px;border:none;border-radius:6px;cursor:pointer;font-size:13px;font-weight:600;font-family:'IBM Plex Sans',sans-serif;}
.btn-primary{background:var(--accent);color:#000;}
.btn-danger{background:var(--red);color:#fff;}
.stats-bar{display:flex;gap:14px;margin-bottom:18px;flex-wrap:wrap;}
.stat{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:10px 16px;font-family:'IBM Plex Mono',monospace;font-size:12px;}
.stat span{color:var(--accent);font-size:20px;display:block;font-weight:600;}
/* alertas anticorrupcion */
.alertas{margin-bottom:18px;display:flex;flex-direction:column;gap:8px;}
.alerta{border-radius:6px;padding:10px 16px;font-size:13px;line-height:1.6;display:flex;gap:10px;align-items:flex-start;}
.alerta.alto{background:rgba(248,81,73,.1);border:1px solid rgba(248,81,73,.4);color:#f8c4c2;}
.alerta.medio{background:rgba(210,153,34,.1);border:1px solid rgba(210,153,34,.4);color:#e6c87a;}
.alerta.info{background:rgba(88,166,255,.08);border:1px solid rgba(88,166,255,.3);color:var(--text);}
.alerta-ico{font-size:16px;line-height:1;}
.alerta-titulo{font-family:'IBM Plex Mono',monospace;font-size:10px;text-transform:uppercase;letter-spacing:1px;margin-bottom:3px;opacity:.7;}
/* cards municipio */
.muni-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;margin-bottom:18px;overflow:hidden;}
.muni-header{padding:12px 18px;background:rgba(240,136,62,.08);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;}
.muni-header h2{font-size:14px;font-weight:600;color:var(--accent);}
.badge{font-family:'IBM Plex Mono',monospace;font-size:11px;padding:3px 8px;border-radius:4px;background:rgba(88,166,255,.15);color:var(--blue);border:1px solid rgba(88,166,255,.3);}
.source-bar{padding:5px 18px;font-size:11px;color:var(--dim);font-family:'IBM Plex Mono',monospace;border-bottom:1px solid var(--border);background:rgba(0,0,0,.2);}
table{width:100%;border-collapse:collapse;font-size:13px;}
th{font-family:'IBM Plex Mono',monospace;font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--dim);padding:9px 14px;text-align:left;background:rgba(0,0,0,.2);border-bottom:1px solid var(--border);}
td{padding:9px 14px;border-bottom:1px solid rgba(48,54,61,.5);vertical-align:top;line-height:1.5;}
tr:last-child td{border-bottom:none;}
.empresa{font-weight:600;}
.contrato-title{font-size:11px;color:var(--dim);margin-top:3px;}
.importe{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--green);white-space:nowrap;font-weight:600;}
.importe.noloc{color:var(--dim);font-style:italic;font-weight:normal;}
.directivo{color:var(--blue);}
.cargo{color:var(--dim);font-size:11px;}
a.link{color:var(--blue);font-size:11px;}
a.borm-link{color:#e0a0ff;font-size:11px;}
.empty{text-align:center;padding:50px;color:var(--dim);font-family:'IBM Plex Mono',monospace;font-size:13px;}
.estado-badge{font-family:'IBM Plex Mono',monospace;font-size:10px;padding:2px 7px;border-radius:3px;}
.est-ADJ,.est-RES{background:rgba(63,185,80,.15);color:var(--green);}
.est-FOR{background:rgba(88,166,255,.15);color:var(--blue);}
.lid{font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--dim);}
.fuente-badge{font-family:'IBM Plex Mono',monospace;font-size:9px;padding:1px 5px;border-radius:3px;vertical-align:middle;margin-left:4px;}
.fuente-place{background:rgba(88,166,255,.15);color:var(--blue);border:1px solid rgba(88,166,255,.3);}
.fuente-borm{background:rgba(224,160,255,.15);color:#e0a0ff;border:1px solid rgba(224,160,255,.3);}



.sp-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:70vh;gap:24px;}
.sp-ring{width:56px;height:56px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;}
@keyframes spin{to{transform:rotate(360deg)}}
.sp-label{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--dim);text-align:center;line-height:2;}
.sp-label strong{color:var(--accent);}
.sp-log{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--dim);max-width:600px;width:100%;background:rgba(0,0,0,.3);border:1px solid var(--border);border-radius:6px;padding:12px 16px;max-height:220px;overflow-y:auto;line-height:1.8;}
.err-box{background:rgba(248,81,73,.1);border:1px solid var(--red);border-radius:8px;padding:20px 28px;text-align:center;font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--red);display:none;max-width:500px;}
.err-box a{color:var(--blue);display:block;margin-top:12px;}
.pagination{padding:12px 18px;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;font-size:12px;flex-wrap:wrap;gap:8px;}
.pag-info{font-family:'IBM Plex Mono',monospace;color:var(--dim);}
.pag-links{display:flex;gap:6px;}
.pag-btn{padding:5px 12px;background:rgba(88,166,255,.1);border:1px solid rgba(88,166,255,.3);border-radius:4px;color:var(--blue);text-decoration:none;font-size:12px;}
.pag-btn:hover{background:rgba(88,166,255,.2);}
.pag-more{padding:10px 18px;border-top:1px solid var(--border);font-size:12px;}
.pag-more a{color:var(--blue);}
.back-link{font-size:12px;color:var(--dim);margin-bottom:12px;display:block;}
.back-link a{color:var(--blue);}

/* ── banner publicitario ─────────────────────────────────────────────── */
.ad-banner{max-width:728px;min-height:90px;margin:0 auto 22px;background:var(--surface);border:1px dashed var(--border);border-radius:6px;display:flex;align-items:center;justify-content:center;font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--dim);letter-spacing:.5px;text-align:center;padding:8px;}

/* ── landing ──────────────────────────────────────────────────────────── */
.hero{text-align:center;padding:38px 20px 8px;}
.hero-tagline{font-size:20px;color:var(--text);font-weight:600;}
.hero-sub{color:var(--dim);margin-top:10px;font-size:13px;max-width:640px;margin-left:auto;margin-right:auto;}
.global-search{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:20px 22px;margin:22px 0;}
.global-search .gs-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.global-search input{background:var(--bg);border:1px solid var(--border);color:var(--text);font-family:'IBM Plex Mono',monospace;font-size:14px;padding:10px 14px;border-radius:6px;flex:1;min-width:220px;outline:none;}
.global-search input:focus{border-color:var(--blue);}
.global-search .gs-hint{font-size:11px;color:var(--dim);margin-top:8px;}

/* ── buscador avanzado (3 modos, AJAX) ───────────────────────────────── */
.adv-search{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:20px 22px;margin:22px 0;width:100%;}
.as-tabs{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap;}
.as-tab{font-family:'IBM Plex Mono',monospace;font-size:12px;padding:7px 16px;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--dim);cursor:pointer;font-weight:600;}
.as-tab.active{background:rgba(240,136,62,.15);color:var(--accent);border-color:rgba(240,136,62,.4);}
.as-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;width:100%;}
.as-row input{background:var(--bg);border:1px solid var(--border);color:var(--text);font-family:'IBM Plex Mono',monospace;font-size:14px;padding:12px 16px;border-radius:6px;flex:1;min-width:220px;outline:none;}
.as-row input:focus{border-color:var(--blue);}
.as-row .btn{padding:12px 22px;}
.gs-hint{font-size:11px;color:var(--dim);margin-top:8px;}
#as-results{margin-top:16px;display:flex;flex-direction:column;gap:10px;}
.as-loading{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--dim);padding:10px 0;}
.as-total{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--accent);padding:4px 0 8px;border-bottom:1px solid var(--border);}
.as-row-result{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:12px 16px;}
.as-rr-top{display:flex;justify-content:space-between;gap:10px;align-items:baseline;flex-wrap:wrap;}
.as-rr-empresa{font-weight:600;font-size:13px;}
.as-rr-importe{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--green);white-space:nowrap;}
.as-rr-importe.big{font-size:15px;color:#5fe37a;font-weight:600;}
.as-rr-sub{font-size:11px;color:var(--dim);margin-top:3px;font-family:'IBM Plex Mono',monospace;}
.as-rr-titulo{font-size:12px;color:var(--text);margin-top:5px;}
.as-rr-directivo{font-size:12px;color:var(--blue);margin-top:4px;}
.as-group{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:14px 16px;}
.as-group .as-row-result{margin-top:8px;background:var(--surface);}
.section-title{font-size:13px;font-family:'IBM Plex Mono',monospace;text-transform:uppercase;letter-spacing:1.5px;color:var(--dim);margin:26px 0 12px;}
.muni-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;}
.muni-tile{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:16px 18px;display:flex;flex-direction:column;gap:8px;transition:border-color .15s;}
.muni-tile:hover{border-color:var(--accent);}
.muni-tile h3{font-size:14px;color:var(--accent);}
.muni-tile .mt-row{display:flex;justify-content:space-between;font-size:12px;color:var(--dim);font-family:'IBM Plex Mono',monospace;}
.muni-tile .mt-row b{color:var(--text);font-weight:600;}
.muni-tile .mt-imp{font-family:'IBM Plex Mono',monospace;font-size:15px;color:var(--green);font-weight:600;}
.muni-tile a.btn-ver{margin-top:4px;text-align:center;padding:7px 10px;background:rgba(240,136,62,.12);color:var(--accent);border:1px solid rgba(240,136,62,.35);border-radius:6px;font-size:12px;font-weight:600;text-decoration:none;}
.muni-tile a.btn-ver:hover{background:rgba(240,136,62,.22);}

/* ── footer ───────────────────────────────────────────────────────────── */
.site-footer{max-width:1340px;margin:48px auto 0;padding:22px 20px;border-top:1px solid var(--border);display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;align-items:center;}
.site-footer .ft-links{display:flex;flex-wrap:wrap;gap:16px;align-items:center;}
.site-footer a{color:var(--dim);font-size:12px;text-decoration:none;}
.site-footer a:hover{color:var(--blue);}
.site-footer .ft-brand{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--dim);}
.site-footer .ft-sep{color:var(--border);font-size:12px;}
.site-footer .ft-label{color:var(--dim);font-size:12px;}

/* ── páginas estáticas (quiénes somos / aviso legal) ─────────────────── */
.static-page{max-width:820px;margin:0 auto;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:34px 38px;line-height:1.8;font-size:14px;}
.static-page h1{font-size:22px;color:var(--accent);margin-bottom:18px;}
.static-page h2{font-size:15px;color:var(--text);margin:26px 0 10px;font-family:'IBM Plex Mono',monospace;text-transform:uppercase;letter-spacing:1px;}
.static-page p{margin-bottom:14px;color:var(--text);}
.static-page ul{margin:0 0 14px 22px;}
.static-page li{margin-bottom:6px;}
.static-page a{color:var(--blue);}
.static-page .contact-btn{display:inline-block;margin-top:8px;padding:9px 18px;background:var(--accent);color:#000;border-radius:6px;text-decoration:none;font-weight:600;font-size:13px;}

/* ── mejoras visuales: importes / iconos / avisos ────────────────────── */
.importe.big{font-size:16px;color:#5fe37a;}
.icon-tipo{margin-right:5px;}
.noloc-warn{display:inline-flex;align-items:center;gap:5px;color:var(--yellow);font-size:11px;font-style:italic;}
.noloc-warn a{color:var(--yellow);text-decoration:underline;}
.noloc-nota{display:block;font-size:10px;color:var(--dim);font-style:italic;margin-top:2px;}
.risk-prominent{border-radius:8px;padding:14px 18px;margin-bottom:18px;display:flex;gap:12px;align-items:center;background:rgba(248,81,73,.12);border:2px solid rgba(248,81,73,.5);}
.risk-prominent .rp-ico{font-size:26px;line-height:1;}
.risk-prominent .rp-text{font-size:13px;color:#f8c4c2;line-height:1.5;}
.risk-prominent .rp-text b{color:#fff;}

/* ── responsive ───────────────────────────────────────────────────────── */
@media (max-width:700px){
  header{padding:10px 14px;}
  header h1{font-size:13px;}
  header p{font-size:10px;}
  .logo-svg svg{width:96px;}
  .main{padding:0 12px;margin:18px auto;max-width:100%;}
  .hero{padding:22px 6px 4px;}
  .hero-tagline{font-size:16px;}
  .hero-sub{font-size:12px;}
  .stats-bar{gap:8px;}
  .stat{padding:8px 12px;flex:1 1 40%;}
  .stat span{font-size:16px;}
  .muni-grid{grid-template-columns:1fr 1fr;gap:10px;}
  .muni-tile{padding:12px 14px;}
  .search-bar,.global-search,.adv-search{padding:14px 16px;}
  .search-bar .btn,.search-bar form,.global-search .gs-row,.as-row{width:100%;}
  .global-search input,.search-bar input,.as-row input{min-width:0;width:100%;}
  .as-row .btn{width:100%;}
  .as-tab{flex:1 1 auto;text-align:center;padding:8px 6px;}
  table{font-size:12px;display:block;overflow-x:auto;white-space:nowrap;}
  th,td{padding:7px 8px;}
  .contrato-title{display:none;}
  .site-footer{flex-direction:column;align-items:flex-start;max-width:100%;}
  .site-footer .ft-links{gap:10px 14px;}
  .static-page{padding:22px 18px;}
  .ad-banner{max-width:100%;}
}
@media (max-width:420px){
  .muni-grid{grid-template-columns:1fr;}
}
