:root{--verde:#1a8a18;--verde-osc:#0f4f14;--rojo:#d32929;--amarillo:#fef102;--naranja:#fe7216;--azul:#214f76;--crema:#fbfaf4;--borde:#e3e6da;--gris:#777;--radio:12px}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;color:#2b2b2b;line-height:1.5}
body.fondo{background:var(--crema)}
body.embed{background:transparent}
h1,h2,h3{color:var(--verde-osc);line-height:1.2}
a{color:var(--verde)}
.gris{color:var(--gris)}
.btn{display:inline-block;background:var(--rojo);color:#fff;border:0;border-radius:999px;padding:.65em 1.4em;font:inherit;font-weight:700;text-decoration:none;cursor:pointer}
.btn:hover{filter:brightness(.92)}
.btn.claro{background:#fff;color:var(--verde);box-shadow:inset 0 0 0 2px var(--verde)}
.btn.chico{padding:.4em 1em;font-size:.9rem}
.btn.rojo{background:#9b2c22}
.btn.ancho{width:100%}
label{display:block;font-weight:600;font-size:.9rem;margin-bottom:12px;color:#444}
input,select,textarea{display:block;width:100%;margin-top:4px;padding:.6em .8em;border:1px solid #cfd4c4;border-radius:10px;font:inherit;font-weight:400;background:#fff}
input:focus,select:focus,textarea:focus{outline:2px solid var(--verde);border-color:transparent}
label.check{display:flex;align-items:center;gap:8px;margin:10px 0 16px}
label.check input{width:auto;margin:0}
.alerta{padding:12px 16px;border-radius:10px;margin:0 0 14px;font-weight:600}
.alerta.ok{background:#e1f2df;color:#1c5c1a}
.alerta.error{background:#fbe3e0;color:#8a2d20}
.alerta.aviso{background:#fff8d6;color:#6b5600}

/* Público */
.cabecera{display:flex;align-items:center;gap:18px;max-width:900px;margin:0 auto;padding:26px 20px 10px}
.cabecera img{width:90px}
.cabecera h1{margin:0;font-size:1.6rem}
.cabecera p{margin:2px 0 0;color:var(--gris)}
.buscador-caja{max-width:900px;margin:0 auto;padding:10px 20px 40px}
.embed .buscador-caja{padding:6px 4px 20px}
.pestanas{display:flex;gap:6px;border-bottom:3px solid var(--amarillo);margin-bottom:12px}
.pestanas a{padding:10px 18px;text-decoration:none;font-weight:700;color:var(--verde-osc);border-radius:10px 10px 0 0;background:#eef2e8}
.pestanas a.activa{background:var(--verde);color:#fff}
.bajada{margin:6px 0 14px}
.buscador{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}
.buscador input{flex:1;min-width:220px;margin:0}
.buscador select{width:auto;margin:0}
.resultados{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.ficha{background:#fff;border:1px solid var(--borde);border-left:5px solid var(--verde);border-radius:var(--radio);padding:16px 18px}
.ficha h3{margin:6px 0 8px;font-size:1.2rem}
.ficha-sello{display:inline-block;background:#e1f2df;color:var(--verde-osc);font-weight:700;font-size:.78rem;padding:2px 10px;border-radius:999px}
.ficha dl{margin:0;font-size:.95rem}
.ficha dt{color:var(--gris);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;margin-top:9px}
.ficha dd{margin:1px 0 0;font-weight:600;overflow-wrap:break-word;word-break:normal;hyphens:none}
@media(max-width:600px){.cabecera{flex-direction:column;text-align:center}.buscador select,.buscador .btn{width:100%}}

/* Login / instalar */
.caja-chica{max-width:380px;margin:10vh auto;background:#fff;padding:30px;border-radius:var(--radio);border:1px solid var(--borde)}
.caja-chica h1{text-align:center;font-size:1.5rem}
.logo-centro{display:block;width:120px;margin:0 auto}

/* Panel */
body.admin{background:#f4f5ef}
.admin-top{background:var(--verde-osc);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:0 22px;min-height:58px;border-bottom:5px solid var(--amarillo)}
.admin-top .marca{color:#fff;font-weight:700;font-size:1.15rem;text-decoration:none;display:flex;align-items:center;gap:10px}
.admin-top .marca img{height:38px;background:#fff;border-radius:50%;padding:2px}
.admin-top nav a{color:#d3e2d0;text-decoration:none;margin-left:18px;font-weight:600;display:inline-block;padding:8px 0}
.admin-top nav a.activo,.admin-top nav a:hover{color:#fff;border-bottom:2px solid var(--amarillo)}
.admin-main{max-width:1250px;margin:0 auto;padding:20px}
.panel{background:#fff;border:1px solid var(--borde);border-radius:var(--radio);padding:22px;margin-bottom:18px}
.filtros{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.filtros input,.filtros select{width:auto;margin:0}
.filtros input[name=q]{min-width:260px;flex:1;max-width:420px}
.espacio{flex:1}
.tabla-scroll{overflow-x:auto;background:#fff;border:1px solid var(--borde);border-radius:var(--radio)}
.tabla{width:100%;border-collapse:collapse;font-size:.93rem}
.tabla th{text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--gris);padding:10px 12px;border-bottom:2px solid var(--borde);white-space:nowrap}
.tabla td{padding:9px 12px;border-bottom:1px solid #eef0e8;vertical-align:top}
.tabla tr:hover td{background:#fafbf6}
.tabla tr.oculto td{opacity:.5}
.tabla.chica{font-size:.85rem;width:auto}
.grilla-form{display:grid;grid-template-columns:repeat(3,1fr);gap:0 16px}
.grilla-form .completo{grid-column:1/-1}
@media(max-width:800px){.grilla-form{grid-template-columns:1fr}}
.privado{color:var(--gris);font-weight:400}
.ayuda li{margin-bottom:6px}
.en-linea{display:flex;gap:10px;align-items:center;margin-top:18px}

/* Solicitudes */
.grilla-form.dos{grid-template-columns:repeat(2,1fr)}
@media(max-width:700px){.grilla-form.dos{grid-template-columns:1fr}}
.dos-col{display:grid;grid-template-columns:1.1fr 1fr;gap:18px;align-items:start}
@media(max-width:950px){.dos-col{grid-template-columns:1fr}}
.visor{width:100%;height:560px;border:1px solid var(--borde);border-radius:8px}
.visor-img{max-width:100%;border:1px solid var(--borde);border-radius:8px}
.chip{display:inline-block;border-radius:999px;padding:1px 10px;font-size:.78rem;font-weight:700}
.chip-pendiente{background:#fff3d6;color:#8a5a00}
.chip-aprobada{background:#e1f2df;color:#1c5c1a}
.chip-rechazada{background:#fbe3e0;color:#8a2d20}
.burbuja{background:var(--rojo);color:#fff;border-radius:999px;padding:0 7px;font-size:.75rem}
.pestanas.chicas a{padding:7px 14px;font-size:.92rem}
.panel.exito{border-left:5px solid var(--verde)}
.datos-pago{background:#f1f4e8;border-radius:10px;padding:12px 14px;margin:6px 0 14px;font-size:.92rem}
hr{border:0;border-top:1px solid var(--borde);margin:20px 0}
.invitacion{margin-top:26px;background:#fff;border:1px dashed var(--verde);border-radius:var(--radio);padding:16px 18px;display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.ficha-sello.vencido{background:#fbe3e0;color:#8a2d20}
.ficha.ficha-vencida{border-left-color:#c9c9c9;opacity:.85}

/* Representantes */
.reps-caja{max-width:1150px;margin:0 auto;padding:10px 20px 40px}
.embed .reps-caja{padding:6px 4px 20px}
.reps-grilla{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,280px));gap:20px;justify-content:center}
.rep{background:#fff;border:1px solid var(--borde);border-radius:16px;padding:24px 20px 20px;text-align:center;display:flex;flex-direction:column;align-items:center;border-top:5px solid var(--verde)}
.rep-foto{width:132px;height:132px;border-radius:50%;overflow:hidden;background:#eef2e8;display:flex;align-items:center;justify-content:center;border:4px solid #fff;box-shadow:0 0 0 3px var(--amarillo);flex-shrink:0}
.rep-foto img{width:100%;height:100%;object-fit:cover}
.rep-foto span{font-size:3rem;color:var(--verde-osc);font-weight:700}
.rep-foto.grande{width:160px;height:160px}
.rep-foto.mini{width:46px;height:46px;border-width:2px;box-shadow:0 0 0 2px var(--amarillo)}
.rep-foto.mini span{font-size:1.2rem}
.rep-pais{margin-top:14px;font-size:.88rem;font-weight:700;color:var(--azul);text-transform:uppercase;letter-spacing:.04em}
.rep h3{margin:4px 0 2px;font-size:1.3rem}
.rep-cargo{color:var(--rojo);font-weight:700;font-size:.95rem}
.rep-bio{color:#555;font-size:.92rem;margin:10px 0 0;flex:1}
.rep-contacto{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:14px}
.rep-form{display:grid;grid-template-columns:200px 1fr;gap:24px;align-items:start}
.rep-form-foto{display:flex;flex-direction:column;align-items:center;gap:12px}
@media(max-width:750px){.rep-form{grid-template-columns:1fr}}

/* Certificado: panel */
.cert-acciones{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 14px;padding:12px;background:#f1f4e8;border-radius:10px}
.firmas-form{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:10px}
@media(max-width:800px){.firmas-form{grid-template-columns:1fr}}
.firma-caja{border:1px solid var(--borde);border-radius:12px;padding:16px}
.firma-caja h3{margin-top:0}
.firma-prev{height:90px;display:flex;align-items:center;justify-content:center;background:repeating-conic-gradient(#f3f3f3 0 25%,#fff 0 50%) 0 0/16px 16px;border-radius:8px;margin-bottom:12px}
.firma-prev img{max-height:80px;max-width:100%}
