.perdidos{max-width:1120px;margin:auto;padding:40px 20px 64px}.perdidos h1{font-size:clamp(2rem,5vw,3rem);line-height:1.15}.perdidos .intro{max-width:720px;color:var(--text-muted);line-height:1.7;margin:18px 0 24px}.perdidos .aviso{background:var(--secondary-light);border-left:4px solid var(--secondary-solid);padding:20px;border-radius:var(--radius-md);margin:24px 0}.perdidos .panel{background:var(--bg-light);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:24px;margin:24px 0}.perdidos .grid{display:grid;grid-template-columns:1fr;gap:22px}.perdidos label{display:block;font-weight:600;margin-bottom:6px}.perdidos input:not([type=checkbox]),.perdidos select,.perdidos textarea{width:100%;min-height:46px;padding:12px;border:1px solid var(--border-color);border-radius:var(--radius-sm);font:inherit;background:var(--bg-light);color:var(--text-dark)}.perdidos .accion{display:inline-block;padding:13px 22px;min-height:46px;background:var(--primary-solid);color:var(--bg-light);border:0;border-radius:var(--radius-md);text-decoration:none;font:inherit;font-weight:700;cursor:pointer}.perdidos :focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}.perdidos .card{border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden;background:var(--bg-light)}.perdidos .card img{width:100%;height:230px;object-fit:cover}.perdidos .card-body{padding:22px}.perdidos .badge{display:inline-block;background:var(--primary-light);color:var(--primary-text);padding:4px 12px;border-radius:var(--radius-sm);font-size:.85rem;font-weight:700}.perdidos .foto{max-width:100%;height:auto;max-height:600px;object-fit:contain;border-radius:var(--radius-lg)}.perdidos .dato{white-space:pre-wrap;overflow-wrap:anywhere}.perdidos .check{display:flex;gap:12px;align-items:start;font-weight:400}.perdidos .check input{min-width:24px;min-height:24px}.perdidos .trampa{position:absolute;left:-9999px}.perdidos .acciones{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.perdidos dialog{margin:auto;padding:30px;width:min(480px,calc(100% - 32px));border:1px solid var(--border-color);border-radius:var(--radius-lg);background:var(--bg-light);color:var(--text-dark)}.perdidos dialog::backdrop{background:color-mix(in srgb,var(--text-dark) 65%,transparent)}.perdidos .error{color:var(--primary-text)}.perdidos .muted{color:var(--text-muted)}@media(min-width:640px){.perdidos .grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1000px){.perdidos .catalogo{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Perros perdidos: ficha compacta, galería y aviso del inicio. */
.perdidos{padding-top:28px;padding-bottom:40px}
.perdidos .pp-encabezado{margin-bottom:20px}
.perdidos .pp-volver{display:inline-flex;align-items:center;min-height:44px;color:var(--primary-text);font-weight:600}
.perdidos .pp-titulo{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:4px 0 10px}
.perdidos .pp-titulo h1{font-size:clamp(1.9rem,4vw,2.65rem);margin:0}
.perdidos .pp-encabezado p{color:var(--text-muted);margin:0;max-width:65ch}
.perdidos .pp-ficha{display:grid;gap:24px;background:var(--bg-white);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:20px;align-items:start}
.perdidos .pp-galeria{min-width:0}
.perdidos .pp-principal{display:block;overflow:hidden;border-radius:var(--radius-md);background:var(--primary-light)}
.perdidos .pp-principal img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:contain}
.perdidos .pp-pie-foto{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px;color:var(--text-muted);font-size:.85rem;margin:9px 0}
.perdidos .pp-miniaturas{display:flex;gap:8px}
.perdidos .pp-miniaturas a{display:block;flex:1;max-width:100px;min-width:44px;min-height:44px;border:2px solid transparent;border-radius:var(--radius-sm);overflow:hidden}
.perdidos .pp-miniaturas a[aria-current]{border-color:var(--primary-solid)}
.perdidos .pp-miniaturas img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.perdidos .pp-antetitulo{color:var(--primary-text);font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em}
.perdidos .pp-resumen h2{font-size:1.55rem;line-height:1.2;margin:7px 0 3px}
.perdidos .pp-ciudad{margin:0 0 16px;color:var(--text-muted)}
.perdidos .pp-datos{margin:0;display:grid;gap:14px}
.perdidos .pp-datos dt{font-size:.85rem;color:var(--text-muted);font-weight:600;margin-bottom:3px}
.perdidos .pp-datos dd{margin:0;overflow-wrap:anywhere;font-weight:600;line-height:1.45}
.perdidos .pp-rasgos{display:flex;flex-wrap:wrap;gap:6px;margin:16px 0}
.perdidos .pp-rasgos span{padding:5px 10px;background:var(--bg-light);border-radius:var(--radius-sm);font-size:.85rem;border:1px solid var(--border-color)}
.perdidos .pp-contacto{background:var(--secondary-light);border-radius:var(--radius-md);padding:16px}
.perdidos .pp-contacto h3{font-size:1.05rem;margin:0 0 5px}
.perdidos .pp-contacto p{font-size:.9rem;line-height:1.5;margin:0 0 12px;color:var(--text-muted)}
.perdidos .pp-whatsapp{background:var(--whatsapp);width:100%;text-align:center;padding:13px 12px}
.perdidos .pp-telefono{display:flex;justify-content:center;align-items:center;min-height:44px;color:var(--text-dark);font-weight:600;font-size:.9rem}
.perdidos .pp-identificacion{padding:22px 0 0}
.perdidos .pp-identificacion h2{font-size:1.4rem;margin:0 0 16px}
.perdidos .pp-caracteristicas{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 20px;padding-bottom:20px;border-bottom:1px solid var(--border-color)}
.perdidos .pp-notas{display:grid;gap:16px;margin-top:18px}
.perdidos .pp-notas h3{font-size:1rem;margin:0 0 6px}
.perdidos .pp-notas p{margin:0;color:var(--text-muted);line-height:1.6;overflow-wrap:anywhere}
.perdidos .pp-seguridad{font-size:.9rem;line-height:1.6;padding:16px;margin:22px 0 0}
.perdidos .pp-preview{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0}
.perdidos .pp-preview figure{width:112px;margin:0;position:relative}
.perdidos .pp-preview img{width:112px;height:84px;object-fit:cover;border-radius:var(--radius-sm)}
.perdidos .pp-preview figcaption{font-size:.8rem;color:var(--text-muted)}
.perdidos .pp-preview button{min-height:44px;width:100%;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-white);font:inherit;color:var(--primary-text);cursor:pointer}
.perdidos .pp-revision-datos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;font-size:.9rem;overflow-wrap:anywhere}
.perdidos .pp-revision-datos p{margin:0}
.home-lost-card{width:min(100%,410px);background:var(--bg-white);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden;text-align:left}
.home-lost-label{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:12px 18px;background:var(--primary-light);color:var(--primary-text);font-size:.8rem;font-weight:600}
.home-lost-label span:first-child{font-size:1.05rem;font-weight:800;letter-spacing:.12em}
.home-lost-photo{display:block;background:var(--primary-light)}
.home-lost-photo img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:contain}
.home-lost-body{padding:16px 18px 18px}
.home-lost-body h2{font-size:1.8rem;line-height:1.15;margin:0 0 6px;overflow-wrap:anywhere}
.home-lost-body p{font-size:.9rem;color:var(--text-muted);margin:0 0 14px}
.home-lost-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.home-lost-actions .btn{display:flex;align-items:center;justify-content:center;min-height:46px;padding:10px 8px;font-size:.9rem;white-space:normal;text-align:center}
.home-lost-card :focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}
@media(min-width:768px){.perdidos .pp-ficha{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:28px;padding:24px}.perdidos .pp-caracteristicas{grid-template-columns:repeat(4,minmax(0,1fr))}.perdidos .pp-notas{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.perdidos .pp-notas>div:only-child{grid-column:1/-1;max-width:75ch}}
@media(max-width:639px){.perdidos{padding:18px 16px 32px}.perdidos .pp-ficha{padding:14px;gap:18px}.perdidos .pp-titulo{align-items:start;flex-direction:column;gap:8px}.perdidos .panel{padding:18px}.home-lost-card{max-width:390px}.home-lost-label{padding:10px 14px}.home-lost-label span:last-child{font-size:.75rem}}

/* El grid heredado de historias no debe superar el ancho útil del inicio móvil. */
.happy-finals-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr))}

/* Catálogo, mapa y reporte son tareas separadas. */
.perdidos .pp-vistas{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}
.perdidos .pp-vistas a,.perdidos .pp-secundario{display:inline-flex;justify-content:center;align-items:center;min-height:44px;padding:10px 15px;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-white);color:var(--text-dark);font:inherit;font-weight:600;text-decoration:none;cursor:pointer}
.perdidos .pp-vistas .pp-vista-activa{background:var(--primary-light);color:var(--primary-text);border-color:var(--primary-text)}
.perdidos .pp-bloque{margin-top:32px;scroll-margin-top:100px}
.perdidos .pp-seccion-titulo{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.perdidos .pp-seccion-titulo h2{font-size:clamp(1.4rem,3vw,1.8rem);line-height:1.2;margin:6px 0}
.perdidos .pp-seccion-titulo>span{color:var(--text-muted);font-size:.9rem}
.perdidos .pp-filtros{display:grid;gap:14px;margin:12px 0 20px;align-items:end}
.perdidos .catalogo h3{font-size:1.4rem;margin:7px 0}
.perdidos .pp-paginacion{margin-top:20px}
.perdidos .pp-busqueda-mapa{border-top:1px solid var(--border-color);padding-top:28px}
.perdidos .pp-map-controles{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin:16px 0 10px}
.perdidos .pp-map-controles label{font-size:.85rem}
.perdidos .pp-map-controles select{min-width:100px;padding:9px 12px}
.perdidos .pp-map-layout{display:grid;gap:16px;background:var(--bg-white);border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden;margin-top:18px}
.perdidos .pp-mapa{height:360px;min-width:0;background:var(--bg-light);isolation:isolate;z-index:0;border-radius:var(--radius-md)}
.perdidos .pp-map-layout>.pp-mapa{border-radius:0}
.perdidos .pp-map-resultados{padding:18px;min-width:0;max-height:480px;overflow:auto}
.perdidos .pp-map-resultados [data-map-estado]{font-weight:600;margin:0 0 12px}
.perdidos .pp-map-resultado{display:grid;grid-template-columns:64px minmax(0,1fr);gap:12px;padding:12px 0;border-bottom:1px solid var(--border-color);text-decoration:none;color:var(--text-dark)}
.perdidos .pp-map-resultado img{width:64px;height:64px;object-fit:cover;border-radius:var(--radius-sm)}
.perdidos .pp-map-resultado strong{display:block;font-size:1.05rem;overflow-wrap:anywhere}
.perdidos .pp-map-resultado small{display:block;color:var(--text-muted);line-height:1.5}
.perdidos .pp-map-listado{display:inline-flex;align-items:center;min-height:44px;color:var(--primary-text);margin-top:10px}
.perdidos [data-ampliar]{margin-top:16px}
.perdidos .pp-map-privacidad{font-size:.85rem;line-height:1.6;margin:10px 0}
.perdidos .pp-pin{margin:16px 0}
.perdidos .pp-pin .pp-mapa{border:1px solid var(--border-color)}
.perdidos .pp-pin p{line-height:1.6}
.perdidos .pp-coordenadas summary{cursor:pointer;min-height:44px;display:flex;align-items:center;color:var(--primary-text);font-weight:600}
.perdidos .pp-coordenadas .grid{margin-bottom:12px}
.perdidos .pp-map-marker{background:var(--primary-solid);border:3px solid var(--bg-white);border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md);font-size:20px}
.perdidos .pp-popup{color:var(--text-dark);font-family:inherit;min-width:150px}
.perdidos .pp-popup img{width:160px;height:110px;object-fit:cover;border-radius:var(--radius-sm)}
.perdidos .pp-popup strong{display:block;margin:6px 0;font-size:1rem}
.perdidos .pp-popup a{display:inline-flex;align-items:center;min-height:44px;color:var(--primary-text);font-weight:700}
.perdidos .pp-reportar{display:flex;flex-direction:column;gap:18px;margin-top:40px;padding:26px;background:var(--primary-light);border:1px solid var(--border-color);border-radius:var(--radius-lg)}
.perdidos .pp-reportar h2{font-size:1.8rem;margin:6px 0 12px}
.perdidos .pp-reportar p{line-height:1.6;max-width:65ch;margin:8px 0}
.perdidos .pp-reportar>.accion{align-self:start;white-space:normal;text-align:center}
.perdidos [hidden]{display:none!important}
.perdidos .leaflet-control a{color:var(--text-dark)}
@media(min-width:640px){.perdidos .pp-filtros{grid-template-columns:minmax(0,1.5fr) minmax(120px,.8fr)}.perdidos .pp-filtros>.acciones{grid-column:1/-1}}
@media(min-width:900px){.perdidos .pp-map-layout{grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr);gap:0}.perdidos .pp-map-layout>.pp-mapa{height:480px}.perdidos .pp-reportar{flex-direction:row;align-items:center;justify-content:space-between}.perdidos .pp-reportar>.accion{align-self:center;flex-shrink:0}.perdidos .pp-filtros{grid-template-columns:minmax(0,1.5fr) minmax(120px,.7fr) auto}.perdidos .pp-filtros>.acciones{grid-column:auto}}
@media(min-width:768px){.perdidos .catalogo.pp-una-tarjeta{grid-template-columns:1fr}.perdidos .pp-una-tarjeta .card{display:grid;grid-template-columns:280px minmax(0,1fr)}.perdidos .pp-una-tarjeta .card>a{height:100%}.perdidos .pp-una-tarjeta .card img{height:100%;min-height:230px}}
@media(max-width:639px){.perdidos .pp-map-controles>.accion{width:100%}.perdidos .pp-map-controles>[data-buscar-area]{flex:1}.perdidos .pp-map-layout>.pp-mapa{height:330px}.perdidos .pp-reportar{padding:20px}.perdidos .pp-reportar>.accion{width:100%}.perdidos .pp-map-resultados{max-height:360px}}

/* Controles del mapa con área táctil mínima y números legibles. */
.perdidos .leaflet-control.leaflet-control-zoom a{width:44px;height:44px;line-height:44px}
.perdidos .leaflet-container a.leaflet-popup-close-button{width:44px;height:44px;line-height:44px;font-size:24px}
.perdidos .pp-map-marker{color:var(--bg-white)}
.perdidos .pp-pin-marcador{display:flex;align-items:center;justify-content:center;font-size:25px;background:var(--bg-white);border:2px solid var(--primary-solid);border-radius:50%;box-shadow:var(--shadow-md)}

/* Listado administrativo: no heredar el centrado vertical de las páginas públicas. */
.dashboard-layout>.perdidos.pp-admin{align-self:start;width:100%;min-width:0;max-width:none;margin:0;padding:0}
.perdidos.pp-admin h1{font-size:1.6rem;line-height:1.25;margin:0 0 6px}
.pp-admin .pp-admin-intro{color:var(--text-muted);margin:0 0 24px}
.pp-admin .pp-admin-buscar{display:flex;flex-wrap:wrap;align-items:end;gap:10px;margin:20px 0;max-width:720px}
.pp-admin .pp-admin-buscar label{flex:1;min-width:min(100%,240px);margin:0;font-size:.9rem}
.pp-admin .pp-admin-buscar input{margin-top:5px}
.pp-admin .pp-admin-total{color:var(--text-muted);margin:18px 0 12px}
.pp-admin .pp-admin-tabla{background:var(--bg-white);max-width:100%}
.pp-admin .table{min-width:850px}
.pp-admin .table td{vertical-align:top;padding:16px 12px;overflow-wrap:anywhere;max-width:300px}
.pp-admin .table th{white-space:nowrap}
.pp-admin .pp-admin-perro{display:flex;gap:14px;min-width:240px;align-items:start}
.pp-admin .pp-admin-perro img{width:80px;height:80px;object-fit:cover;border-radius:var(--radius-md);flex-shrink:0;background:var(--secondary-light)}
.pp-admin .pp-admin-perro strong{display:block;font-size:1.1rem;margin-bottom:5px}
.pp-admin .table small{display:block;font-size:.85rem;color:var(--text-muted);margin-top:4px;line-height:1.4}
.pp-admin .pp-admin-estado{display:inline-block;padding:5px 10px;border-radius:var(--radius-sm);font-size:.8rem;font-weight:700;background:var(--secondary-light);color:var(--secondary-solid)}
.pp-admin .pp-admin-estado-publicado,.pp-admin .pp-admin-estado-localizado{background:var(--success-solid);color:var(--bg-white)}
.pp-admin .pp-admin-estado-rechazado,.pp-admin .pp-admin-estado-retirado{background:var(--primary-light);color:var(--primary-text)}
.pp-admin .pp-admin-acciones{display:flex;flex-direction:column;gap:6px;align-items:stretch;min-width:86px}
.pp-admin .pp-admin-acciones a{padding:8px 12px;font-size:.85rem}
.pp-admin .pp-admin-borrar{background:var(--primary-solid);color:var(--bg-white);border-color:var(--primary-solid)}
.pp-admin details{margin:20px 0;padding:16px;background:var(--bg-white);border:1px solid var(--border-color);border-radius:var(--radius-md);scroll-margin-top:100px}
.pp-admin summary{min-height:44px;cursor:pointer;font-weight:600;align-content:center}
.pp-admin details form{margin-top:16px}
.pp-admin .pp-sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.pp-admin .pp-vistas a{gap:5px}
@media(max-width:639px){.pp-admin .pp-admin-buscar{max-width:none}.pp-admin .pp-admin-buscar label{flex-basis:100%}.pp-admin .pp-vistas{gap:6px}.pp-admin .pp-vistas a{padding:8px 10px}.perdidos.pp-admin .pp-revision-datos{grid-template-columns:1fr}}

/* Especie: perros y gatos comparten catálogo y mapa. */
@media(min-width:900px){.perdidos .pp-filtros{grid-template-columns:minmax(140px,1fr) minmax(0,1.5fr) minmax(110px,.8fr)}.perdidos .pp-filtros>.acciones{grid-column:1/-1}}
.pp-admin .pp-admin-buscar{max-width:900px}.pp-admin .pp-admin-buscar>div{min-width:160px}
