*{box-sizing:border-box;margin:0;padding:0}
:root{
  --gore-azul:#003D7A; --gore-azul-mid:#005BAD; --gore-azul-lt:#D0E4F5; --gore-azul-xlt:#EAF3FB;
  --gore-verde:#2B6E44; --gore-verde-mid:#3A9459; --gore-verde-lt:#D4EDDE; --gore-verde-xlt:#EDF7F1;
  --gore-dorado:#C8960C; --gore-dorado-lt:#FDF3D4;
  --bg:#F0F4F8; --white:#FFFFFF; --text:#1A1F2E; --text2:#3D4461; --text3:#7A82A0; --border:#D8DDE8;
  --shadow:0 2px 12px rgba(0,61,122,.07); --shadow-lg:0 8px 36px rgba(0,61,122,.14);
  --cerrado-bg:#D4EDDE; --cerrado-fg:#1E5933;
  --sinrendir-bg:#FAD4D4; --sinrendir-fg:#7A1A1A;
  --saldo-bg:#FCE3C8; --saldo-fg:#7A3500;
  --ejecucion-bg:#D0E4F5; --ejecucion-fg:#003D7A;
  --certif-bg:#FDF3D4; --certif-fg:#6B5000;
}
body{font-family:'Source Sans 3',sans-serif;background:var(--bg);color:var(--text);min-height:100vh}

.banda-top{background:var(--gore-azul);padding:0 28px;height:36px;display:flex;align-items:center;gap:10px}
.banda-top span{font-size:11.5px;color:rgba(255,255,255,.65);letter-spacing:.04em}
.banda-top .sep{color:rgba(255,255,255,.25)}
.banda-top strong{color:rgba(255,255,255,.9);font-weight:600}

.header{
  background:linear-gradient(160deg,#003D7A 0%,#005BAD 55%,#2B6E44 100%);
  padding:22px 28px 0;
  position:relative;
  overflow:hidden;
}
.header::after{content:'';position:absolute;bottom:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--gore-dorado) 0%,#5DB040 50%,var(--gore-azul-mid) 100%)}
.header::before{content:'';position:absolute;inset:0;background-image:repeating-linear-gradient(45deg,transparent,transparent 40px,rgba(255,255,255,.025) 40px,rgba(255,255,255,.025) 41px)}
.header-inner{max-width:880px;margin:0 auto;display:flex;align-items:center;gap:20px;position:relative}

.logo-wrap{flex-shrink:0;width:50px;filter:drop-shadow(0 3px 10px rgba(0,0,0,.5))}
.logo-wrap svg,
.logo-wrap img{width:100%;height:auto;display:block}

.header-text{flex:1}
.header-supra{font-size:11px;color:rgba(255,255,255,.6);letter-spacing:.12em;text-transform:uppercase;font-weight:500;margin-bottom:4px}
.header-title{font-family:'Lora',serif;font-size:24px;font-weight:700;color:#FFFFFF;line-height:1.15;letter-spacing:-.01em}
.header-subtitle{font-size:13px;color:rgba(255,255,255,.7);margin-top:5px;font-weight:400}

.hero{background:linear-gradient(180deg,#003D7A 0%,#004A94 100%);padding:36px 28px 44px}
.hero-inner{max-width:640px;margin:0 auto;text-align:center}
.hero-eyebrow{font-size:11.5px;color:var(--gore-dorado);letter-spacing:.14em;text-transform:uppercase;font-weight:600;margin-bottom:10px}
.hero-heading{font-family:'Lora',serif;font-size:27px;font-weight:600;color:#FFFFFF;margin-bottom:8px;line-height:1.2}
.hero-desc{font-size:15px;color:rgba(255,255,255,.65);margin-bottom:28px;line-height:1.5}

.buscador{background:white;border-radius:14px;padding:22px 22px 18px;box-shadow:0 12px 48px rgba(0,0,0,.25);text-align:left}
.buscador-label{font-size:11.5px;font-weight:700;color:var(--gore-azul);text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px;display:flex;align-items:center;gap:6px}
.buscador-label::before{content:'';display:inline-block;width:3px;height:14px;background:var(--gore-dorado);border-radius:2px}
.buscador-row{display:flex;gap:8px}
.buscador-grid{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:end}
.buscador-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.buscador-field label{font-size:11px;font-weight:600;color:var(--text2);letter-spacing:.02em}
.buscador-input{width:100%;height:50px;border:1.5px solid var(--border);border-radius:10px;padding:0 16px;font-size:15px;font-family:'Source Sans 3',sans-serif;color:var(--text);background:#FAFBFC;outline:none;transition:border-color .15s,box-shadow .15s}
.buscador-row .buscador-input{flex:1}
.buscador-input:focus{border-color:var(--gore-azul-mid);box-shadow:0 0 0 3px rgba(0,91,173,.12);background:white}
.buscador-input::placeholder{color:var(--text3)}
.buscador-btn{height:50px;padding:0 26px;background:var(--gore-azul);color:white;border:none;border-radius:10px;font-size:14px;font-weight:700;font-family:'Source Sans 3',sans-serif;cursor:pointer;letter-spacing:.02em;transition:background .15s,transform .1s;display:flex;align-items:center;gap:8px}
.buscador-btn:hover{background:#002D5A}
.buscador-btn:active{transform:scale(.98)}
.buscador-hint{display:flex;gap:16px;margin-top:12px;flex-wrap:wrap}
.hint-chip{font-size:11.5px;color:var(--text3);display:flex;align-items:center;gap:4px}
.hint-chip b{color:var(--gore-azul-mid);font-weight:600}

.main{max-width:880px;margin:0 auto;padding:32px 24px 48px}

.empty{text-align:center;padding:56px 20px}
.empty-icon{width:72px;height:72px;background:var(--gore-azul-xlt);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;font-size:28px}
.empty-title{font-family:'Lora',serif;font-size:20px;color:var(--gore-azul);margin-bottom:6px}
.empty-desc{font-size:14px;color:var(--text3);line-height:1.6}

.results-meta{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;flex-wrap:wrap;gap:8px}
.results-count{font-size:13.5px;color:var(--text2)}
.results-count strong{color:var(--gore-azul);font-size:17px;font-weight:700}
.results-query{font-size:12px;color:var(--text3);background:var(--gore-azul-xlt);padding:4px 12px;border-radius:20px}

.alert{background:#FAD4D4;color:#7A1A1A;border-radius:10px;padding:12px 16px;font-size:13.5px;margin-bottom:18px;border:1px solid #F0B5B5}

.ficha{background:white;border:1px solid var(--border);border-radius:12px;margin-bottom:14px;overflow:hidden;box-shadow:var(--shadow);transition:box-shadow .18s,transform .18s;animation:fadeUp .3s ease both}
.ficha:hover{box-shadow:var(--shadow-lg);transform:translateY(-1px)}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

.ficha-header{padding:16px 20px 14px;display:flex;align-items:flex-start;justify-content:space-between;gap:14px;border-bottom:1px solid var(--border);position:relative}
.ficha-header::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px}
.ficha.est-cerrado .ficha-header::before{background:var(--gore-verde-mid)}
.ficha.est-sinrendir .ficha-header::before{background:#C23B3B}
.ficha.est-saldo .ficha-header::before{background:#E07B2A}
.ficha.est-ejecucion .ficha-header::before{background:var(--gore-azul-mid)}
.ficha.est-certif .ficha-header::before{background:var(--gore-dorado)}

.ficha-left{flex:1;min-width:0;padding-left:6px}
.ficha-codigo{font-family:'Source Code Pro',monospace;font-size:11.5px;color:var(--gore-azul-mid);font-weight:500;letter-spacing:.04em;margin-bottom:5px}
.ficha-inst{font-size:15.5px;font-weight:700;color:var(--text);line-height:1.3;margin-bottom:4px}
.ficha-meta{font-size:12px;color:var(--text3);display:flex;gap:10px;flex-wrap:wrap}

.estado{display:inline-flex;align-items:center;gap:6px;padding:5px 13px;border-radius:6px;font-size:11.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;flex-shrink:0;white-space:nowrap}
.est-cerrado .estado{background:var(--cerrado-bg);color:var(--cerrado-fg)}
.est-sinrendir .estado{background:var(--sinrendir-bg);color:var(--sinrendir-fg)}
.est-saldo .estado{background:var(--saldo-bg);color:var(--saldo-fg)}
.est-ejecucion .estado{background:var(--ejecucion-bg);color:var(--ejecucion-fg)}
.est-certif .estado{background:var(--certif-bg);color:var(--certif-fg)}

.ficha-body{padding:16px 20px 14px 26px}
.montos{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}
.monto-item{background:var(--bg);border-radius:8px;padding:10px 14px;border:1px solid var(--border)}
.monto-lbl{font-size:10px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.07em;margin-bottom:4px}
.monto-val{font-size:15px;font-weight:700;color:var(--text);font-family:'Lora',serif;word-break:break-all}
.monto-val.rojo{color:#C23B3B}
.monto-val.verde{color:var(--gore-verde)}

.progreso-wrap{margin-bottom:4px}
.progreso-labels{display:flex;justify-content:space-between;font-size:11.5px;color:var(--text3);margin-bottom:6px}
.progreso-labels strong{color:var(--text2)}
.progreso-track{height:7px;background:var(--border);border-radius:4px;overflow:hidden;display:flex}
.progreso-rendido{height:100%;transition:width .5s ease}
.progreso-saldo{height:100%;opacity:.3}

.ficha-footer{padding:10px 20px 10px 26px;background:var(--bg);border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ftag{font-size:11px;padding:3px 10px;border-radius:4px;font-weight:600;letter-spacing:.02em}
.ftag-geo{background:var(--gore-verde-lt);color:var(--gore-verde)}
.ftag-tipo{background:var(--gore-azul-lt);color:var(--gore-azul)}
.ftag-oficio{background:var(--gore-dorado-lt);color:#6B4A00}

.paginacion{display:flex;align-items:center;justify-content:center;gap:4px;margin-top:28px;flex-wrap:wrap}
.pg-btn{min-width:36px;height:36px;padding:0 10px;border:1.5px solid var(--border);border-radius:7px;background:white;color:var(--text2);font-size:13px;font-family:'Source Sans 3',sans-serif;cursor:pointer;transition:all .15s;font-weight:500;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
.pg-btn:hover:not(.disabled){border-color:var(--gore-azul-mid);color:var(--gore-azul);background:var(--gore-azul-xlt)}
.pg-btn.active{background:var(--gore-azul);border-color:var(--gore-azul);color:white;font-weight:700}
.pg-btn.disabled{opacity:.35;cursor:default;pointer-events:none}
.pg-ellipsis{padding:0 4px;color:var(--text3)}

.notas-section{max-width:880px;margin:0 auto;padding:0 24px 40px}
.notas-card{background:white;border:1px solid var(--border);border-radius:12px;overflow:hidden;box-shadow:var(--shadow)}
.notas-header{background:linear-gradient(90deg,var(--gore-azul) 0%,var(--gore-azul-mid) 100%);padding:12px 20px;display:flex;align-items:center;gap:8px}
.notas-header span{font-size:13px;font-weight:700;color:white;letter-spacing:.03em;text-transform:uppercase}
.notas-body{padding:18px 20px;display:flex;flex-direction:column;gap:12px}
.nota-item{display:flex;gap:12px;align-items:flex-start}
.nota-icon{width:34px;height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;margin-top:1px}
.nota-icon.azul{background:var(--gore-azul-xlt)}
.nota-icon.verde{background:var(--gore-verde-xlt)}
.nota-text p{font-size:14px;color:var(--text2);line-height:1.55}
.nota-text a{color:var(--gore-azul-mid);font-weight:600;text-decoration:none}
.nota-text a:hover{text-decoration:underline}
.nota-sep{border:none;border-top:1px solid var(--border);margin:0}

.footer{background:var(--gore-azul);padding:20px 28px}
.footer-inner{max-width:880px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}
.footer-left{font-size:12px;color:rgba(255,255,255,.55);line-height:1.6}
.footer-left strong{color:rgba(255,255,255,.85);font-weight:600}
.footer-badge{font-size:11px;padding:3px 10px;border-radius:4px;font-weight:600;background:rgba(255,255,255,.1);color:rgba(255,255,255,.7)}

.no-res{text-align:center;padding:48px 20px;background:white;border-radius:12px;border:1px solid var(--border)}
.no-res h3{font-family:'Lora',serif;font-size:20px;color:var(--gore-azul);margin:12px 0 6px}
.no-res p{font-size:14px;color:var(--text3)}

@media(max-width:620px){
  .header-inner{flex-direction:column;align-items:flex-start;gap:14px}
  .logo-wrap{width:40px}
  .header-title{font-size:19px}
  .montos{grid-template-columns:1fr 1fr}
  .buscador-row{flex-direction:column}
  .buscador-grid{grid-template-columns:1fr;gap:12px}
  .buscador-btn{width:100%;justify-content:center}
  .banda-top{display:none}
}
